目前,我主要通过将键值对放入 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/