c# - 使用 string.Format 进行本地化

标签 c# uwp

目前,我主要通过将键值对放入 Resources.resw 文件来进行本地化。所以我想知道我应该如何本地化需要格式化的字符串或用不同语言说出具有不同语法顺序的字符串。通过以下示例可能更容易理解我的意思。

例如,正如official document中的这一部分对于本地化建议,一种语言可以具有

的日期格式
string.Format("Every {0} {1}", monthName, dayNumber);

而另一个使用

string.Format("Every {1} {0}", monthName, dayNumber);

在这种情况下,本地化此类字符串的最佳方法是什么?

事物/语法可能比这个例子复杂得多。 official document中的建议对我来说不太好,因为约会是不可预测的。或者您可以枚举日期,但这需要大量工作。或者假设我们有一个接受用户输入的字符串,比如

 string.Format("Do you want to delete {name}?", name);

在另一种语言中它可能有这样的语法顺序

string.Format("You want to delete {name} do?", name);

不可能像文档中的示例那样对整个句子进行本地化。

我能想到的避免这种情况的唯一方法是不输入用户....

最佳答案

如果您有权访问日期,您可以使用 The Month ("M", "m") Format Specifier

来自文档:

DateTime date1 = new DateTime(2008, 4, 10, 6, 30, 0);
Console.WriteLine(date1.ToString("m", 
                  CultureInfo.CreateSpecificCulture("en-us")));
// Displays April 10                        
Console.WriteLine(date1.ToString("m", 
                  CultureInfo.CreateSpecificCulture("ms-MY")));
// Displays 10 April

对于string.Format("Do you want to delete {name}?", name);可以

$"Do you want to delete the following user? '{name}'";

关于c# - 使用 string.Format 进行本地化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58443767/

相关文章:

c# - 如何更改 UWP 应用程序中的应用程序标题

javascript - 使用 WinJS 实现 UWP 透明模糊效果

win-universal-app - 部署到商店后 UWP 部署错误 - Windows 10

c# - 由于 CLR.dll Windows 应用程序崩溃 - Windows 2008 R2 Server

c# - 使用反射按声明顺序获取属性

c# - Mutex 与信号量有什么关系?

xaml - 在 UWP 中制作固定宽度的网格列和行

c# - 指定从 proc COM 对象实例化时要使用的单元状态

c# - 在 VS 2010 asp.net 中没有获取 gridview1.Rows.Clear() 选项

windows - 如何解决本地 Windows UWP (Cordova) 网络问题