我正在尝试学习如何使用 MvvmCross.Forms 在 Xamarin Forms 应用程序中实现和测试本地化。使用 Visual Studio 2017 或 2019 社区版。
到目前为止,我已尝试按照教程进行操作。
https://www.mvvmcross.com/documentation/plugins/resxlocalization
https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/localization/
但这些都没有展示如何为 .Net Standard 类实现解决方案,其中 Visual Studio 解决方案具有以下设置。
NuGet 版本
我想了解如何使用尽可能少的代码进入特定于应用程序的表示层来实现本地化。
任何人都可以指点我关于如何使用 Xamarin.Forms …
我正在尝试用英语和意大利语本地化我的应用程序.
我得到了这部分代码:
-(IBAction)randomSN{
int text = rand() % 2;
switch (text) {
case 0:
textview.text =NSLocalizedString(@"YES", @"Sì");
break;
case 1:
textview.text = NSLocalizedString("@NO", @"No");
break;
default:
break;
}
}
Run Code Online (Sandbox Code Playgroud)
当我进入构建和运行时,会出现一些警告:
warning: passing argument 1 of 'localizedStringForKey:value:table:' from incompatible pointer type
Run Code Online (Sandbox Code Playgroud)
我认为它需要一张桌子才能工作或者?当它说时,警告仅在第二部分显示
textview.text = NSLocalizedString("@NO", @"No");
Run Code Online (Sandbox Code Playgroud)
此外,当我运行项目时,模拟器设置为英语(应用程序的主要语言是意大利语),我输入的Localizable.strings没有出现.
我试图找到一种方法来选择两种语言之间的切换,因此我需要在messages_en.js文件中存储一些自定义消息。
是否可以将自定义消息存储在messages_en.js中,例如:
name: {
required: 'Enter name',
minlength: 'Name should consist of min. {0} characters',
maxlength: 'Name is too long',
}
Run Code Online (Sandbox Code Playgroud)
要么
name: $.validator.format( "{0} should consist of min. {1} characters" ),
Run Code Online (Sandbox Code Playgroud)
{0}字段名称在哪里?
messages_en.js
$.extend( $.validator.messages, {
required: "This field is required.",
remote: "Please fix this field.",
email: "Please enter a valid email address.",
url: "Please enter a valid URL.",
date: "Please enter a valid date.",
dateISO: "Please enter a valid date (ISO).",
number: "Please enter a …Run Code Online (Sandbox Code Playgroud) 请告诉我有关如何使用msgcat合并两个.po文件以及如何安装msgcat的信息.
有没有<SupportedCultures><SupportedCultures>在Windows Phone中动态添加的选项???
在我的应用程序中,我正在进行语言本地化.它与按钮和texviews完美配合,但无法更改recyclerview上的字符串
它说 NumberFormatException:无效的int:""
private void updateViews(String languageCode) {
Context context = LocaleHelper.setLocale(MainActivity.this, languageCode);
Resources resources = context.getResources();
changelang.setText(resources.getString(R.string.changelanguage));
languagename.setText(resources.getString(R.string.languagename));
//error with following line object01.setDepname(Integer.parseInt(resources.getString(R.string.cultivation)));
}
});Run Code Online (Sandbox Code Playgroud)
堆栈跟踪
java.lang.NumberFormatException: Invalid int: "????"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:410)
at java.lang.Integer.parseInt(Integer.java:367)
at java.lang.Integer.parseInt(Integer.java:334)
at com.example.rimapps.icar_iisr_ginger.MainActivity$1.updateViews(MainActivity.java:125)
at com.example.rimapps.icar_iisr_ginger.MainActivity$1.access$000(MainActivity.java:92)
at com.example.rimapps.icar_iisr_ginger.MainActivity$1$1.onClick(MainActivity.java:101)
at android.support.v7.app.AlertController$AlertParams$3.onItemClick(AlertController.java:1044)
at android.widget.AdapterView.performItemClick(AdapterView.java:310)
at android.widget.AbsListView.performItemClick(AbsListView.java:1145)
at android.widget.AbsListView$PerformClick.run(AbsListView.java:3081)
at android.widget.AbsListView$3.run(AbsListView.java:3947)
at android.os.Handler.handleCallback(Handler.java:742)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)Run Code Online (Sandbox Code Playgroud)
请帮忙
android localization parseint numberformatexception android-recyclerview
localization ×6
android ×1
c# ×1
gettext ×1
ios4 ×1
javascript ×1
jquery ×1
mvvmcross ×1
objective-c ×1
parseint ×1
uwp ×1
windows ×1
xcode4 ×1