使用string.Format进行本地化

问题描述 投票:1回答:2

我想知道如何定位需要格式化且语法顺序不同的字符串。下面的示例可能更容易理解我的意思。

例如,正如[C​​0]中用于本地化的部分所建议的那样,一种语言的日期格式可以为

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);

不可能如示例所示将整个句子本地化。

我能想到的避免情况的唯一方法是不使用使用输入。...

c# uwp
2个回答
0
投票

如果有权访问日期,则可以使用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);

0
投票

将整个日期放入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.

我们用来定位文本的方式。

© www.soinside.com 2019 - 2024. All rights reserved.