将带有占位符 (`{0}`) 的字符串添加到资源中是个好主意吗?

2023-12-23

我已将一个字符串添加到资源文件中。我的应用程序将被本地化。
但是,添加带有占位符的字符串({0})进入资源是个好主意吗?
如果由非技术人员进行本地化怎么办?有没有办法让他们在不知不觉中把事情搞砸?

如果这不是一个好主意,我该怎么办?

这是一个简单的例子。我将使用 WPF 资源字典。

Example:

// Resource1.resx
//        Name               |            Value
//---------------------------------------------------------------
// RELATIONSHIP_STATUS_MSG   | {0} is in relationship with {1}. 
//


class Program
{
    static void Main(string[] args)
    {
        string msg = string.Format(Resource1.RELATIONSHIP_STATUS_MSG, 
                                   "Romeo", "Juliot");
        Console.WriteLine(msg);
    }
}

嗯,我相信这是一个好主意,因为这是渲染参数化和本地化字符串的一种简单快捷的方法。

顺便说一句,正如您在问题中所说,非技术人员可能会破坏您的本地化字符串,因为他们不明白什么是“{0}”。我有两种“方法”来解决这个问题

  1. 请注意,非技术人员维护本地化字符串,他们不能关心括号中的文本。

  2. 使用命名占位符:“{some-identifier}”并使用someTextResource.Replace("{some-identifier}", someTextVar).

关于第二个,您可以实现一些接受IDictionary<TKey, TValue>替换关系的实例,其中键是要替换的标识符,值是要替换标识符的文本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将带有占位符 (`{0}`) 的字符串添加到资源中是个好主意吗? 的相关文章

  • 在 CPP 类中将 C 函数声明为友元

    我需要在 C 函数中使用类的私有变量 我正在做这样的事情 class Helper private std string name public std getName return name friend extern C void in
  • 转换 const void*

    我有一个函数返回一个const void 我想用它的信息作为char 我可以将它投射为 C 风格的罚款 char variable但是当我尝试使用reinterpret cast like reinterpret cast
  • WPF:在关闭事件触发之前,不会提交对具有焦点的文本框的更改

    我有一个用于编辑数据库信息的 WPF 窗口 它使用实体框架对象表示 当用户关闭窗口时 我想在 Closing 事件中注意到信息是否已更改 并显示一个消息框 提供将更改保存到数据库的信息 不幸的是 在编辑失去焦点之前 对当前焦点编辑的更改不会
  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 无法注册时间触发的后台任务

    对于 Windows 8 应用程序 在 C Xaml 中 我尝试注册后台任务 很难说 但我想我的后台任务已正确注册 但是当我单击调试位置工具栏上的后台任务名称时 我的应用程序停止工作 没有任何消息 我查看了事件查看器上的日志 得到 具有入口
  • extern 声明和函数定义都在同一文件中

    我只是浏览了一下gcc源文件 在gcc c 我发现了类似的东西 extern int main int char int main int argc char argv 现在我的疑问是extern是告诉编译器特定的函数不在这个文件中 但可以
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 不同 C++ 文件中的相同类名

    如果两个 C 文件具有相同名称的类的不同定义 那么当它们被编译和链接时 即使没有警告也会抛出一些东西 例如 a cc class Student public std string foo return A void foo a Stude
  • 带有移动向前/向后按钮的自定义列表框

    我有一个带有左 右重复按钮的自定义列表框 可以使用内容模板滚动其内容 如下所示
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 如何使用 x64 运行 cl?

    我遇到了和这里同样的问题致命错误 C1034 windows h 未设置包含路径 https stackoverflow com questions 931652 fatal error c1034 windows h no include
  • 在 .NET MAUI 中实现 TouchTracking

    我一直致力于将我们的应用程序从 Xamarin Forms 迁移到 NET MAUI 我们的应用程序几乎没有绘图功能 用户可以用手指进行绘图 我们用了TouchTrackingXamarin Forms 中的 nuget 包 但与 NET
  • 从 C# 使用 Odbc 调用 Oracle 包函数

    我在 Oracle 包中定义了一个函数 CREATE OR REPLACE PACKAGE BODY TESTUSER TESTPKG as FUNCTION testfunc n IN NUMBER RETURN NUMBER as be
  • 如果输入被重定向则执行操作

    我想知道如果我的输入被重定向 我应该如何在 C 程序中执行操作 例如 假设我有已编译的程序 prog 并且我将输入 input txt 重定向到它 我这样做 prog lt input txt 我如何在代码中检测到这一点 一般来说 您无法判
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • Oauth2中如何同时撤销RefreshToken和使AccessToken失效

    我正在使用 Owin Oauth2 授权和资源服务器相同 开发单页面应用程序 AngularJS Net MVC Json Rest API 的身份验证流程 我选择了 Bearer Token 路由而不是传统的 cookie session
  • WPF DataGrid / ListView 绑定到数组 mvvm

    我们假设你有 N 个整数的数组 表示行数的整数值 在模型中 该整数绑定到视图中的 ComboBox Q1 如何将数组 或数组的各个项目 绑定到 DataGrid 或 ListView 控件 以便 当您更改 ComboBox 值时 只有那么多
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • spring-boot - 有条件地在没有模板引擎的情况下提供静态内容

    我有一个静态页面 我想有条件地在特定 URL 上提供服务 使用 spring boot 我可以将页面放在static or public资源目录并将它们提供给每个人 但如果我想通过功能标志限制访问或禁用对它们的访问 那么这是不合适的 使用模
  • AngularJS:在指令内嵌入 ng-repeat

    我有一个指令 可以嵌入原始内容 对其进行解析 并使用原始内容中的信息来帮助构建新内容 它的要点如下 directive list function return restrict E transclude true templateUrl
  • 获取路由器出口外的路由数据

    有没有办法获得data组件中的参数是outisde路由器插座 const appRoutes Routes path component SitesComponent path pollutants newpollutant compone
  • 使用 hcitool 获取蓝牙连接的 RSSI,崩溃

    我读过很多关于获取蓝牙连接 RSSI 的可能性的 stackoverflow 帖子 看起来 Android 并没有通过任何 API 直接公开这一点 唯一的希望就是直接使用 bluez API 显然 一旦您与蓝牙设备建立连接 您就可以使用 h
  • 部署到 Springboot 应用程序后,Angular 路由不起作用

    我已经构建了一个 Springboot 应用程序 包括 Angluar5 我有一个 gradle 构建脚本 它将角度文件加载到我的 springboot 项目中 这些文件位于资源 静态我的 springboot 项目 当我启动我的应用程序时
  • 多个参数的 Lambda 表达式

    我理解 lambda 表达式本质上是一个内联委托声明 以防止额外的步骤 example delegate int Square int x public class Program static void Main String args
  • Java:如何将一个数组与另一个数组设置?

    我对 Java 很陌生 希望得到您的意见 所以 我有一个数组 String names Anna Jo String newNames Bob Sue Jane int totalLength names length newNames l
  • 如何构建 PHP/Node 代理在 https 网站上渲染外部 http 图像?

    我有一个正在运行的网站https 我必须从外部服务器 外部域 加载图像 该服务器没有 https 但只有一个http协议 有没有办法处理代理http通过 PHP 或 Node 获取图像 所以我可以像这样渲染图像 img src 这个想法是避
  • 使用 Python 请求登录 Instagram

    我正在尝试用 python 编写一个脚本来登录http insta friendorfollow com 并获取没有关注的人的列表 我想使用 请求模块 到目前为止我进行了多次尝试但没有成功 我的代码如下 import requests re
  • 将 Elasticsearch 从 1.4.3 迁移到 2.4 java 代码

    我正在从 Elasticsearch 1 4 3 迁移到 2 4 并且 替换了从弹性搜索文档引用的代码段 其他参考文献需要替换 andFilter 吗 Code TermQueryBuilder incPlatformFilter Quer
  • CQRS 事件不包含更新读取模型所需的详细信息

    关于 CQRS 我不明白一件事 当引发的事件不包含更新读取模型所需的详细信息时 如何更新读取模型 不幸的是 这是一种很常见的情况 示例 我将用户添加到组 因此我发送 addUserToGroup userId groupId 命令 该事件由
  • ASP.NET MVC 全局错误处理

    我有一个习惯HandleError处理 MVC 管道上的错误的属性 我有一个protected void Application Error object sender EventArgs e 方法在我的Global asax它处理来自管道
  • Typescript 期望将 undefined 作为参数传递

    打字稿 2 4 1 我正在尝试创建一个辅助函数来生成 redux 操作创建器 我有什么 interface IAction
  • 有没有解析美国地址的库?

    我有一个美国地址列表 我需要进入城市 州 邮政编码 州等 示例地址 16100 Sand Canyon Avenue Suite 380 尔湾 加利福尼亚州 92618 有谁知道有一个库或免费的 API 可以做到这一点吗 TOS 禁止将 G
  • 查找 S3 Bucket 并添加触发器以调用 lambda

    我正在使用新的AWS CDK 云开发工具包 在AWS上用Java构建基础设施 我必须做什么 查找 s3 存储桶并添加调用 lambda 函数的触发器 我做了什么 查找s3存储桶 IBucket bucket Bucket fromBucke
  • 我们如何在 JOOQ 中拥有@variable?

    我试图在 Jooq 中实现类似以下 MySql 查询的功能 Select CASE WHEN datecolumn IS NULL THEN outerval outerval 1 ELSE outerval END AS consec s
  • 如何确定哪个 IIS Express 实例正在使用端口?

    我想以编程方式终止正在运行的占用特定端口的 IIS 实例 但似乎无法确定哪个 IIS 实例正在使用特定端口 netstat exe 只是显示该进程的 PID 为 4 但那是系统进程 netsh http 显示 urlacl 根本不显示占用的
  • 设置在 nsis 安装程序的自定义对话框页面上添加的自定义标签的字体

    如何设置 nsis 安装程序中自定义添加页面上添加的标签的字体 为了创建标签 我使用了这个 nsDialogs Create 1018 var Label NSD CreateLabel 0 0 100 32u PLEASE CHOOSE
  • 枚举 Windows 中可用的键盘布局

    是否可以枚举当前所有可用的键盘布局 我所说的可用是指用户可以通过按 Alt Shift 或他选择的任何快捷键 来切换到它们 即它们位于语言栏的菜单中 或者 检查语言栏中是否提供特定布局也很有用 Edit 非常感谢 oleg 我终于制作了一个
  • 将带有占位符 (`{0}`) 的字符串添加到资源中是个好主意吗?

    我已将一个字符串添加到资源文件中 我的应用程序将被本地化 但是 添加带有占位符的字符串 0 进入资源是个好主意吗 如果由非技术人员进行本地化怎么办 有没有办法让他们在不知不觉中把事情搞砸 如果这不是一个好主意 我该怎么办 这是一个简单的例子