【发布时间】:2020-09-21 21:15:50
【问题描述】:
我有一个带有语言选择器的 Xamarin Forms 应用程序,它将向客户公开。 当我切换语言时,我调用一个 SetLocale() 方法来切换当前语言。
public static void SetLocale(CultureInfo culture)
{
Thread.CurrentThread.CurrentCulture = culture;
Thread.CurrentThread.CurrentUICulture = culture;
AppResources.Culture = culture;
}
所有文本都更新得很好(它们来自 resx 文件),但图像仍然来自我在 info.plist 中定义的默认应用程序语言(在应用程序设置中选择)。
我按照 xamarin 文档将图像放入 Resources/.lproj 的 iOS 项目中
我像往常一样将它们绑定在 xaml 文件中
<Image Source="{Binding Image}"></Image>
如何才能使图像的翻译也能正常工作?
【问题讨论】:
-
默认文件夹名为
Base.lproj。特定于语言的文件夹以语言或语言环境名称命名。确保您正确命名了区域和语言。 -
@LucasZhang-MSFT 是的,当我在 iOS 应用程序设置中更改语言或使用 NSUserDefaults.StandardUserDefaults.SetValueForKey(NSArray.FromStrings(iOSLocale), new NSString( “苹果语言”)); NSUserDefaults.StandardUserDefaults.Synchronize();但如果我更改设置,我需要重新启动应用程序以获得良好的图像。我的 2 种测试语言实际上是 fr-CH 和 de-CH。我只是看到在 CurrentCulture 和 CurrentUICulture 中设置新文化时 NSLocal 没有更新,我还尝试更改 DefaultThread 文化
-
我还尝试在我的 iOS 项目中设置依赖项并更新 NsLocale.CurrentLocale 但我没有找到该怎么做。我认为图像包是在应用程序启动时加载的,并且在动态切换语言时不会更新。
标签: xamarin xamarin.forms xamarin.ios