- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的多语言应用程序中使用 Kendo 组件。为了正确格式化日期,Kendo 需要 LOCALE_ID
从 Angular 设置。我不确定如何以干净的方式实现这一目标。
目前,我正在使用 HTTP_ACCEPT_LANGUAGE
找到我应该用哪种语言来服务我的应用程序。
我在我的 nginx.conf 中这样做:
# Parse AcceptLanguage header
# en,es,pl,fr
# en,es;q=0.8,pl;q=0.7,fr;q=0.6
set $first_language $http_accept_language;
if ($http_accept_language ~* '^(.+?),') {
set $first_language $1;
}
set $language_suffix 'en';
if ($first_language ~* 'fr') {
set $language_suffix 'fr';
}
root /usr/share/nginx/html/$language_suffix;
LOCALE_ID
让我的 Kendo 组件以正确的格式呈现日期。我试图通过获取浏览器当前语言来设置它。这是我尝试实现的方法:
...
import { LOCALE_ID, NgModule } from '@angular/core';
import { LocaleService } from './shared/service/locale.service';
...
@NgModule({
declarations: [
...
],
imports: [
...
],
providers: [
...
{
provide: LOCALE_ID,
deps: [LocaleService],
useValue: (localeService) => localeService.getLanguage()
}
],
})
import { Injectable } from '@angular/core';
@Injectable({
providedIn: 'root'
})
export class LocaleService {
constructor() { }
getLanguage() {
// return navigator.language || navigator.userLanguage
return 'fr-FR';
}
}
ERROR TypeError: value.replace is not a function
at CldrIntlService.set [as localeId] (cldr-intl.service.js:38)
at new CldrIntlService (cldr-intl.service.js:24)
at _createClass (core.js:19829)
at _createProviderInstance (core.js:19801)
at resolveNgModuleDep (core.js:19765)
at NgModuleRef_.push../node_modules/@angular/core/fesm5/core.js.NgModuleRef_.get (core.js:20473)
at resolveDep (core.js:20844)
at createClass (core.js:20724)
at createDirectiveInstance (core.js:20595)
at createViewNodes (core.js:21821)
{ provide: LOCALE_ID, useValue: 'fr-FR' }
最佳答案
也许你应该使用 FactoryProvider实例化您的可注入(inject)对象并返回区域设置值,例如:
providers: [
{
provide: LOCALE_ID,
useFactory: (localeService: LocaleService) => {
console.log('locale ID', localeService.language);
return localeService.language;
},
deps: [LocaleService]
}
],
关于angular - 根据浏览器语言设置 Angular LOCALE_ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54688652/
我正在尝试在我的多语言应用程序中使用 Kendo 组件。为了正确格式化日期,Kendo 需要 LOCALE_ID从 Angular 设置。我不确定如何以干净的方式实现这一目标。 目前,我正在使用 HT
我在使用丹麦语言环境时遇到了 angular2 日期管道的问题。 当我格式化日期时: {{myDate | date:'dd-MM-yyyy'}} 它输出带有后缀句点的日期日期: 17.-03-201
我正在尝试在 pythonanywhere 上部署一个带有 wagtail 2.11 的网站。但是,我无法在前端保存任何页面模型。 原因似乎是在我的“主页”-app 中,无法应用迁移 0002_cre
我正在使用 Angular 的 i18n 设置构建一个小型 Angular 应用程序。一切正常,除了 url 路径和 slug 的翻译。我尝试了一种可能的解决方案,即为每种语言提供一个路由模块(如此处
如何动态更改 LOCALE_ID? 目前我在 app.module providers 中设置它: { provide: LOCALE_ID, useValue: "sl-SI" }, 并使用 req
我们有一种从 API 延迟加载和设置 Angular 应用程序的 LOCALE_ID 的方法(通过在启动期间加载用户配置文件数据)。这在 Angular 7 上运行良好,但当我升级到 Angular
我正在尝试构建一个支持多种语言的应用程序——实际上多达 20 种。 默认语言为 en-US .在构建过程中,会创建可以正常工作的翻译版本。 但是,在所有构建中 LOCALE_ID总是 en-US .所
我是一名优秀的程序员,十分优秀!