Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拥有本地化提供程序还是在ASP.NET中的ResourceProvider之上构建?_Asp.net_Localization - Fatal编程技术网

拥有本地化提供程序还是在ASP.NET中的ResourceProvider之上构建?

拥有本地化提供程序还是在ASP.NET中的ResourceProvider之上构建?,asp.net,localization,Asp.net,Localization,使用ASP.NET中的内置本地化(资源提供程序),如果我正确阅读了文档,则只能处理没有用户定义参数的翻译字符串(请参见GetString(“key”,locale)) 构建一个能够处理诸如GetString(“key”、locale、parameters”等参数的自定义资源提供程序,最好的方法是什么?为了使用它,我更改了API,但这并不太好,因为对于开发人员来说,资源提供程序始终应该是相同的,唯一可以/应该不同的是后端 我看到的第二种选择是构建从ProviderBase派生的新提供程序,或者创建

使用ASP.NET中的内置本地化(资源提供程序),如果我正确阅读了文档,则只能处理没有用户定义参数的翻译字符串(请参见GetString(“key”,locale))

构建一个能够处理诸如GetString(“key”、locale、parameters”等参数的自定义资源提供程序,最好的方法是什么?为了使用它,我更改了API,但这并不太好,因为对于开发人员来说,资源提供程序始终应该是相同的,唯一可以/应该不同的是后端

我看到的第二种选择是构建从ProviderBase派生的新提供程序,或者创建一个不从任何东西派生的类

您认为如何?我应该向资源提供程序添加方法还是构建新的方法?

您可以:

a) 使用占位符{0}、{1}、{n}存储本地化字符串,然后使用string.Format()或

b) 使用您自己的占位符({FirstName}、{LastName}、{JobTitle},等等),然后在您自己的方法中用实际值替换它们。翻译人员可以移动占位符(因为句子的构建基于不同的语言)

我不确定您想要这些参数做什么,但我想是关于上面b)中的场景。

您可以:

a) 使用占位符{0}、{1}、{n}存储本地化字符串,然后使用string.Format()或

b) 使用您自己的占位符({FirstName}、{LastName}、{JobTitle},等等),然后在您自己的方法中用实际值替换它们。翻译人员可以移动占位符(因为句子的构建基于不同的语言)

我不确定您想要这些参数做什么,但我想这是关于上面b)中的场景