使用angular-translate本地化我的Angular应用程序时,如果首选语言(通过静态文件加载器)无法加载或因任何原因不存在,则不会尝试使用回退语言。
$translateProvider.useStaticFilesLoader({
prefix: 'locale-',
suffix: '.json'
});
$translateProvider
.preferredLanguage('ja')
.fallbackLanguage('en');
plnkr可用:http://plnkr.co/edit/tHrBeY0Ur0rhp0xNuWpA?p=preview
如果存在空的locale-ja.json文件,则正确加载回退。 正如所指出的那样可能是库错误。有没有人找到解决方法?
答案 0 :(得分:3)
FallbackLanguge函数有另一个目的 - 如果转换表没有特定的键,将使用后备语言的转换。 如果要指定默认语言,可以在registerAvailableLanguageKeys函数中使用通配符:
<ControlTemplate x:Key="EditLine">
<StackPanel VerticalAlignment="Center">
<TextBox Text="{Binding RowData.Row.Value}"
Margin="2"
Visibility="{Binding RowData.Row.ParamType, Converter={StaticResource ValueTypeToVisibilityConverter}, ConverterParameter='TextBox'}" />
<CheckBox Visibility="{Binding RowData.Row.ParamType, Converter={StaticResource ValueTypeToVisibilityConverter}, ConverterParameter='CheckBox'}"
IsChecked="{Binding RowData.Row.Value}"
VerticalAlignment="Center"
HorizontalAlignment="Center" />
</StackPanel>
</ControlTemplate>
在此示例中,“en”是默认语言。如果首选语言不存在,它将加载。
答案 1 :(得分:0)
目前遇到了同样的问题,我能解决的唯一方法是添加$translateProvider.use()
选项。所以它看起来像这样:
$translateProvider
.preferredLanguage('ja')
.use('ja')
.fallbackLanguage('en');