相关疑难解决方法(0)

在C#/ WinForms中创建多语言应用程序的最佳实践?

我一直在研究在C#中创建适用于多种语言的应用程序,因为我需要处理一个小项目,在这种情况下.我发现基本上有两种方法可以做到这一点:

将表单的Localizable属性设置为true,设置语言属性,填充所有标签等,然后您就完成了.我在这里看到的主要缺点是:如何制作不属于多种语言的表单的其他内容(例如弹出窗口,日志文件或窗口等).

创建一个资源文件,例如'Lang.en-us.resx'和每种语言一个,例如'Lang.nl-nl.resx'并用字符串填充它.IDE似乎自动为我生成一个类,所以在代码中我可以使用Lang.SomeText.我在这里看到的最大缺点是:对于每个表单,我需要在代码中自己设置所有标签和其他标题(并且似乎数据绑定不适用于这些资源).

不过,我确信还有其他方法可以做到这一点.

那么,最佳做法是什么?对于小型应用程序(一些形式,数据库连接等)以及哪种规模最适合大型应用程序,最简单的是什么?

c# localization internationalization winforms

94
推荐指数
3
解决办法
10万
查看次数

WPF中的多语言

你能推荐一种为WPF应用程序实现多语言系统的好方法吗?我现在使用的方法涉及XML,类和xaml扩展.它在大多数情况下工作正常,但是当我不得不处理动态标签或动态文本时,它需要一些额外的努力.我想让程序员只在主要问题上工作并忘记lang问题.

globalization wpf multilingual xaml

22
推荐指数
2
解决办法
3万
查看次数

检测浏览器显示语言

通过使用以下代码

string[] languages = HttpContext.Current.Request.UserLanguages;
string chosenLanguage = languages[0];
Run Code Online (Sandbox Code Playgroud)

如果我安装了3种语言(例如"da(danish)","sv(swedish)"和"en(english)"),那么语言数组如下所示:

[0]: "en-US"
[1]: "en;q=0.8"
[2]: "da;q=0.6"
[3]: "sv;q=0.4"
Run Code Online (Sandbox Code Playgroud)

即使我将显示语言更改为"丹麦语"而不是"英语",该数组也不会更改任何值.至于我可以从其他人写的关于这个主题的文章中读到,它的[0]价值应该是浏览器的选择语言,但它仍然是"en-US".

有没有其他方式来注册浏览器的语言或我做错了什么?

c# asp.net

18
推荐指数
2
解决办法
4万
查看次数

全球化现有的Windows窗体应用程序?

我有一个使用VS 2005和.net framework 2.0开发的现有winforms应用程序.

现在我们需要全球化这个应用程序.这两个地区是德语和日语.

我知道我们可以使用form的localize属性来创建本地化的表单资源,并且可以为消息框中使用的字符串,异常等提供其他资源文件.

我想知道全局化现有应用程序的最佳方法,我应该在每个表单上设置localize属性,还是有一些工具可以提取标签名称和控件名称...日期格式,货币,等等

我们还在代码中的某些地方使用了一些复合字符串来连接消息字符串,这些字符串如何被本地化?

在开始全球化活动之前,我们将把应用程序迁移到VS 2008和.net framework 3.5.

.net globalization internationalization winforms

10
推荐指数
1
解决办法
1万
查看次数

如何在 T4 模板中使用 resx 资源文件

我不知道如何将资源文件 (.resx) 包含在 (.tt) T4 模板中。

到目前为止我尝试过...导入名称空间

<#@ import namespace="T4TemplateResources.resx" #>
Run Code Online (Sandbox Code Playgroud)

还包括班级

c# t4 resx

5
推荐指数
1
解决办法
5702
查看次数

在uwp中访问xaml布局中的.resx字符串资源

我想直接在我的xaml布局中访问资源,官方文档给我们一些不好的例子,所以我无法让它工作.假设如下Resources.resw:

在此输入图像描述

我可以从C#类访问我的字符串资源,如下所示:

 var loader = new ResourceLoader();
 var resourceString = loader.GetString("txt_ok");
Run Code Online (Sandbox Code Playgroud)

我如何在xaml中访问此资源以获取TextBlock文本?

<TextBlock
  x:Name="MyTextBox"
  Text="I want to get string resource here"/> 
Run Code Online (Sandbox Code Playgroud)

我在这里这里尝试了一些例子,但没有成功

c# xaml win-universal-app

3
推荐指数
1
解决办法
3347
查看次数

直接在 XAML 中使用 .resw 文件中的字符串

我知道从 .resw 文件引用本地化字符串的常用方法如下:

XAML:

<Button x:Uid="ButtonUid" />
Run Code Online (Sandbox Code Playgroud)

资源.resw:

ButtonUid.Content = "Hello World"
Run Code Online (Sandbox Code Playgroud)

但也可以这样做:

XAML(伪代码):

<Button Content = "$buttonLabel" />
Run Code Online (Sandbox Code Playgroud)

资源.resw:

buttonLabel = "Hello World"
Run Code Online (Sandbox Code Playgroud)

我之所以要像第二个例子那样做,是因为这是一个我要从 iOS 和 Android 移植到 WP 的应用程序。我想将 iOS 或 Android 字符串文件转换为 .resw 语法,但无需遍历每个字符串并添加 .Content 或 .Text 或其用途。有一个简单的解决方案吗?

c# xaml localization uwp-xaml

2
推荐指数
1
解决办法
2406
查看次数