我想知道如何定位需要格式化且语法顺序不同的字符串。下面的示例可能更容易理解我的意思。
例如,正如[C0]中用于本地化的部分所建议的那样,一种语言的日期格式可以为
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);
将整个日期放入string.Format($"Do you want to delete the following user? '{name}'");
作为一个参数,并指定内联格式:
string.Format
string.Format("Now is {0:MMM dd}", DateTime.Now)
string.Format("We have the {0:dd}th of {0:MMMM}.", DateTime.Now)
output:
Now is Oct 18
We have the 18th of October.
我们用来定位文本的方式。