C# Xamarin形式的本地化
我正在尝试本地化Xamarin表单应用程序。我遵循了此处包含的所有步骤: 但是,在Android Emulator中,更改默认语言后,字符串不会显示,它们仍然是默认语言。在设备上,应用程序甚至不会启动 迄今采取的步骤: 1) 在主启动器中尝试了断点(BP),它跳过了该断点并进入主页 2) 在Localize类上尝试了BP,但没有达到 3) 在设备上尝试BP.OS检查,跳过它 Visual Studio中的资源文件如下所示:C# Xamarin形式的本地化,c#,xamarin.forms,C#,Xamarin.forms,我正在尝试本地化Xamarin表单应用程序。我遵循了此处包含的所有步骤: 但是,在Android Emulator中,更改默认语言后,字符串不会显示,它们仍然是默认语言。在设备上,应用程序甚至不会启动 迄今采取的步骤: 1) 在主启动器中尝试了断点(BP),它跳过了该断点并进入主页 2) 在Localize类上尝试了BP,但没有达到 3) 在设备上尝试BP.OS检查,跳过它 Visual Studio中的资源文件如下所示: AppResources.resx AppResources.fr.re
AppResources.resx
AppResources.fr.resx
AppResources.es.resx
AppResources.resx
AppResources.fr_FR.resx
AppResources.es_ES.resx
以前有人成功本地化过Xamarin表单应用程序吗?我需要一些帮助,因为Visual Studio不会引发任何异常
更新1:
Visual Studio中的资源文件如下所示:
AppResources.resx
AppResources.fr.resx
AppResources.es.resx
AppResources.resx
AppResources.fr_FR.resx
AppResources.es_ES.resx
更新2:
在最近的建议和修改之后,我有以下例外:找不到标记扩展
这是令人不安的,因为标记扩展类就在那里
如果翻译后的字符串在您的Android版本中起作用
但不是在调试时,右键单击Android项目并选择
选项>构建>Android构建并确保快速组装
部署未勾选。此选项会导致加载问题
如果您正在测试本地化应用程序,则不应使用资源和
已解决:
问题在于延期的声明。在PCL项目中,发生了以下情况:
a) TranslateExtension类位于名为Pages的子文件夹中
b) 最初的声明是
xmlns:languages="clr-namespace:MyApp;assembly=MyApp"
c) 以下声明解决了这个问题:
xmlns:languages="clr-namespace:MyApp.Pages;assembly=MyApp"
以及上述.resx文件的语言代码命名约定2021更新 所有当前答案不再有效!您需要添加资源。右键单击您的xamarin表单项目(不是xamarin android或ios)=>转到项目属性==>资源==>添加资源 这将创建一个“属性”文件夹和一个resources.resx文件,如果需要,可以删除该文件 然后按照创建AppResources.resx和其他语言文件(例如阿拉伯语的AppResources.ar.resx文件)的步骤进行操作。所有这些文件必须位于属性文件夹中 然后,在XAML页面中,将名称空间声明为:
xmlns:res="clr-namespace:YourProject.Properties"
然后简单地使用:
<Label Text="{x:Static res:AppResources.Address}" >
这将根据设备使用的语言使用相应的语言文件。如果不支持该语言,它将使用defulat文件(AppResources.res)
菲恩!!!浪费了一个小时来解决这个问题 在更改设备语言后,是否检查了区域设置是否真的发生了更改?如下所示:
var lang=Resources.Configuration.Locale;//例如,“es_es”
参考Hello Kurt,是的,我做了,结果仍然相同。我将用这个更新问题。由于您使用的是模拟器,我假设您使用的是调试版本?如果选中该页面,则在调试模式下不支持本地化。同时,在更改设备语言后,我认为您需要完全重新启动应用程序(首先完全关闭,然后重新打开)。快速部署不被勾选。然而现在看来,VS不会碰到我设置的任何断点。编辑:修复了调试器,区域性正确返回,但是引发的异常是找不到标记扩展。