我一直在尝试使用JavaScript检测浏览器语言首选项.
如果我在IE中设置浏览器语言Tools>Internet Options>General>Languages,如何使用JavaScript读取此值?
Firefox的问题相同.我无法检测到tools>options>content>languages使用的设置navigator.language.
使用时 navigator.userLanguage ,它会检测通过Start>ControlPanel>RegionalandLanguageOptions>Regional Options选项卡完成的设置
.
我曾与测试navigator.browserLanguage,并navigator.systemLanguage但没有返回第一个设置的值(Tools>InternetOptions>General>Languages)
我找到了一个详细讨论这个问题的链接,但问题仍然没有答案:(
我正在尝试在我的多语言应用程序中使用 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;
Run Code Online (Sandbox Code Playgroud)
这有效。使用正确的 .xlf 文件并且消息显示为已翻译。
现在,我需要设置LOCALE_ID以使我的 Kendo 组件以正确的格式呈现日期。我尝试通过获取浏览器当前语言来设置它。以下是我尝试实现这一目标的方法:
应用程序模块.ts
...
import { LOCALE_ID, NgModule } from '@angular/core';
import { LocaleService } from './shared/service/locale.service';
...
@NgModule({
declarations: [
...
],
imports: [ …Run Code Online (Sandbox Code Playgroud)