首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

软件本地化中的 10 个常见错误

浅谈 web 前端开发中的国际化 一文中做过详细的介绍。如何避免误用本地化,可以注意以下 10 点: 1....合理的做法是对整句进行本地化,并使用占位符传入变量: msgid "welcome_back_msg" msgstr "Hey %(username)s, welcome back!"...错误的编码和缺少 Unicode 支持 当你使用了一个错误的或无法处理 Unicode 的字符编码时,翻译工作也将失败。...缺少上下文造成的困惑和歧义 当字符串包含变量,且被用在一个特定上下文或使用了有歧义的措辞时,你的翻译团队就不好过了。翻译者通常基于无上下文格式的文件和字符串工作。...事到临头才不得不本地化 还有一种小的错误可能会妨碍软件在其他语言下正常工作。如果源内容本身存在错误,可能会导致翻译后的其他若干种语言连带出现同样或更严重的错误,而修复这些不同的语言则会花费数倍时间。

73910
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    GDB读取动态库中定义的全局变量错误

    最近看了一篇getopt使用的文章,为了追踪其执行的逻辑,于是采用GDB挂载调试的方式进行查看。但却出现了GDB打印全局变量optind的时候出现错误。...也就是动态库中存在全局变量的时候,在编译阶段已经在程序的.BSS段中预留了控件给动态库中的全局变量,然后当程序初始化的时候,会拷贝动态库中的全局变量到程序预留的.BSS段控件;其他所有的动态库,也将访问通过前面所说的....BSS段中的全局变量来访问原先动态库中定义的全局变量。...回到原先的问题,那么GDB打印出来并不是程序中.BSS通过Copy Relocation产生的全局变量optind, 而是打印的libc.so中原有的变量的值。...首先我们通过"Info var optind"查看下optind相关的信息,可以看到两处指名了optind的出处,第一处其实说明了这个是在libc.so中定义的,而gdb默认打印的也是libc.so中定义的

    2.1K30

    解决Oracle数据库中的ORA-01045错误:用户缺少CREATE SESSION权限

    **解决Oracle数据库中的ORA-01045错误:用户缺少CREATE SESSION权限**在Oracle数据库中,有时当你尝试登录时可能会遇到各种错误。...这个错误通常表明你尝试登录的用户没有足够的权限来创建会话,也就是说,该用户无法成功登录到数据库中。...错误描述当你看到ORA-01045错误时,它会明确告诉你哪个用户(在这个例子中是POC\_TEST)缺少CREATE SESSION权限。这个权限是用户登录到Oracle数据库所必需的。...解决步骤以下是解决这个错误的步骤:1. 使用有足够权限的用户登录首先,你需要使用一个有足够权限的用户(通常是SYS或SYSTEM)登录到Oracle数据库。...这些用户拥有数据库中的高级权限,可以进行用户管理、权限分配等操作。2.

    2.7K10

    在Ubuntu中如何更改主机名 - 完整教程与5个网络相关的关键要点

    我很荣幸能为您带来这篇客座博文,今天我们将深入讨论如何在Ubuntu操作系统中更改主机名。主机名是计算机在网络中的身份标识,对于网络连接和系统管理都非常重要。...我们将为您提供一个完整的教程,包含5个与网络相关的关键要点,每个要点都有详细的示例和用例。 1. 主机名的重要性 主机名是标识计算机在网络中的名称,它在网络通信中扮演着关键的角色。...使用hostnamectl命令更改主机名 在Ubuntu中,可以使用hostnamectl命令来更改主机名。它是一个强大且方便的工具,可以实现主机名的即时更改。...用例: 通过网络连接和反向DNS解析测试,确认主机名更改后网络通信仍然正常。 希望这篇关于在Ubuntu中更改主机名的完整教程对您有所帮助。...更改主机名是一个重要且常见的任务,熟悉这个过程对于每位系统管理员都是必备的技能。感谢您的阅读,祝您在Linux的旅程中取得成功!

    1.8K70

    Go错误集锦 | map中因mutex使用不当导致的数据竞争

    众所周知,在并发程序中,对共享数据的访问是经常的事情,一般通过使用mutex对共享数据进行安全保护。当对slice和map使用mutex进行保护时有一个错误是经常被忽略的。下面我们看一个具体的示例。...我们将c.balances拷贝到了一个本地变量中,然后就释放了锁。...然后通过循环本地变量balances来计算所有客户的总额。最后返回客户的平均余额。...如果我们使用-race运行,则会提示导致数据竞争。所以这里的问题处在哪里呢? 实际上,我们在之前讲过map的底层数据结构实际上是一些元信息加上一个指向buckets的数据指针。...第二种方式是将原来的map数据深度拷贝一份到本地变量。这种方式适用于迭代循环逻辑比较重(也就是耗时比较大)的场景。比如在迭代逻辑中会涉及到网络IO(数据库的读写等)。

    66020

    错误记录 | 一个导致ListView中item内容全部重复的可能原因

    最近在写一个快递查询的WearOS App,突然有一次调试发现主界面的ListView里的item,显示的都是一模一样的内容,全是最新添加的一个快递的内容(这是一个伏笔哈哈哈)。...无意中看到一篇Blog: HashMap对象重复赋值在多线程中的教训 https://blog.csdn.net/goodguyzl/article/details/83847286 该文中写道: “HashMap...),但是在循环里面这个HashMap对象反复了put了key相同的两个键值对,问题可能就出在这里” 我猛然意识到我也犯了同样的错误!...这就是为什么我的项目里ListView中显示的item全是最新添加的一个快递的信息。 下面是我的代码和运行界面的前后对比。...(ListView显示的item的数据源没有改变的情况下) //修改前的问题代码 Map showitem = new HashMap()

    81710

    c#中GC错误使用导致程序执行速度明显下降的bug优化记录

    C# 垃圾回收的优化经验分享 在使用 C# 开发应用程序的过程中,垃圾回收(Garbage Collection,GC)是一个至关重要的机制。...它负责自动管理内存,回收不再使用的对象,从而避免内存泄漏和提高程序的稳定性。然而,错误地使用垃圾回收可能会导致性能问题,甚至引发严重的性能瓶颈。 什么是垃圾回收?...虽然 GC 大大简化了内存管理,但如果不合理使用,可能会导致性能下降。 遇到的问题 在我的项目中,我曾经将 GC 的调用放置在一个 for 循环中。...每次循环迭代时,都会触发垃圾回收,这导致程序的执行速度显著下降。具体表现为: 频繁的 GC 调用:每次循环都触发 GC,导致 CPU 资源被大量占用,程序响应变慢。...总结 在 C# 开发中,垃圾回收是一个不可忽视的主题。虽然它为我们提供了便利,但错误的使用方式可能会导致严重的性能问题。通过合理的优化策略,我们可以充分发挥 GC 的优势,提升程序的整体性能。

    13710

    SkeyeLive中DShow本地采集视频参数设置及可能出现的错误提示详解

    在近期发布的SkeyeLive多窗口版本中,由于界面的局限性,选择性的将本地采集的音视频参数设置在界面上剔除掉了(暂时还没想好放在哪里,后续版本会在界面调整后添加),大家可以查看SkeyeLive源码中的...StartDSCapture函数的参数设置代码进行相应设置;也应近期SkeyeSMS流媒体服务器群(QQ群:102644504,欢迎大家进群交流,任何技术问题,在所知的范围内都能给予解答)中大家提到的参数设置的错误提示以及参数该如何设置的问题...DShow捕获输出的图像数据的色彩格式,主要是RGB和YUV两种,这个参数很重要,在显示和编码时我们都会用到,设置不当可能导致色彩显示不对甚至未知的程序崩溃(一般是指针越界),在SkeyeStreamPusher...我们在程序中中进行了简单的设备配置://1....,可能是设备不支持这种色彩格式或者分辨率;当然,捕获设备通常是成功的,但是,要注意默认的色彩格式和分辨率将有可能和我们的设置参数不一致,这时候就要了解设备的具体参数,然后在编码时进行相应处理,否则可能导致编码失败

    85220

    【Android 异步操作】手写 Handler ( Message 消息 | ThreadLocal 线程本地变量 | Looper 中的消息队列 MessageQueue )

    文章目录 一、Message 消息 二、ThreadLocal 线程本地变量 三、Looper 中的消息队列 MessageQueue 一、Message 消息 ---- 模仿 Android 中的 Message...(t) 中 , 获取的 ThreadLocalMap 与 Java 中的 Map 集合没有任何关联 , 该类就是为了保存 线程本地变量而在 ThreadLocal 中设置的内部类 ; 在该 ThreadLocalMap...内部类中 , 通过 key 键 , 获取对应 value 值 ; public class ThreadLocal { /** * 返回 该线程本地变量的 当前线程的变量副本...* 如果 该线程中对应的 变量没有值, 应该首先初始化该变量值 * * @return 返回当前线程的线程本地变量值 */ public T get(...Looper 中关于 线程本地变量 的设置 : 在 Looper 中涉及到了 线程本地变量 的设置 , Looper 要求每个线程只能保持一个 , 并且各个线程之间的 Looper 相互独立 , 没有任何关联

    29200

    bug 导致 77 TB数据被删光,HPE 称 100% 负责:在执行过程中重新加载修改后的shell脚本,从而导致未定义的变量

    由于HPE发布的软件更新版有缺陷,结果无意中删除了备份内容,日本京都大学丢失了多达77TB的研究资料。 这起事件发生在2021年12月中旬,导致14个研究小组总共丢失了约3400万份文件。...然而,负责备份日本惠普公司制造的这个超级计算机系统的存储的程序出现了一个缺陷,导致脚本运行失灵。HPE表示,其结果是无意中删除了这个大容量备份磁盘存储的一些数据。...该公司承认:“我们对这个修改后的脚本的发布程序缺乏考虑……我们没有意识到这种行为带来的副作用,脚本仍在运行时就发布「更新版」,结果覆盖了脚本。”...HPE补充道:“这导致了在执行过程中重新加载修改后的shell脚本,从而导致未定义的变量。结果,「大容量备份磁盘存储」中的原始日志文件被删除,而原本应该删除保存在日志目录中的文件。”...京都大学已暂停了受影响的备份流程,但计划在解决程序中的问题后在本月底之前恢复。它建议用户将重要文件备份到另一个系统。 京都学校和HPE都声称,他们将采取措施防止此类事件再次发生。

    1.9K20

    iOS开发·KVC:字典转模型,防止因本地未定义字段(后台的字段与本地字符串名不一致)导致数据转换过程中的奔溃

    将后台JSON数据中的字典转成本地的模型,我们一般选用部分优秀的第三方框架,如SBJSON、JSONKit、MJExtension、YYModel等。...笔者的KVC系列为: iOS开发·KVC:字典转模型,防止因本地未定义字段(后台的字段与本地字符串名不一致)导致数据转换过程中的奔溃 iOS开发·runtime+KVC实现字典模型转换 1....但是,只需要重写- (void)setValue:(id)value forUndefinedKey:(NSString *)key方法即可防止未定义的字段与本地字符串名不一致导致的奔溃。...含有系统关键字同名字段的字典 如上所示,许多JSON数据里面会有一个id的字段, 而id是iOS的一个关键字,不能用关键字定义属性名,此时我们就需要在model类中修改这个属性的名字,并在- (void...)setValue:(id)value forUndefinedKey:(NSString *)key的方法体中重写该方法,以针对id字段作特殊处理。

    1.5K20

    Sentry 后端监控 - 最佳实践(官方教程)

    现在我们可以通过运行以下命令将来自该存储库的提交与新版本相关联: 面包屑(Breadcrumbs) Breadcrumbs 是导致错误的事件的踪迹。在尝试重现问题时,它们非常有用。...在您的浏览器中,在以下端点中启动本地 Django 应用程序以触发未处理的错误:http://localhost:8000/unhandled。 如果您设置了警报规则,您应该会收到有关错误的通知。...要在您的本地主机上试用,请触发以下端点:http://localhost:8000/handled。 与未处理的错误类似,打开新问题(issue)的详细信息页面。...在我们的示例中,我们创建了一个专用的视图类 CaptureMessageView 来触发和捕获我们想要跟踪的消息 要在您的本地主机上试用,请触发以下端点:http://localhost:8000/message...我们在本地范围内设置自定义标签、用户上下文属性(电子邮件)和额外数据,以丰富消息事件的数据。 保存更改并再次触发 /message 端点。

    4.1K20

    Python打不开问题解决方案大全

    Python路径未配置到环境变量中 在使用Python进行编程的时候,如果我们使用了命令行或脚本来启动Python,就需要确保Python的路径已经配置到系统的环境变量中。...解决方案如下: # 检查您是否将Python的路径正确配置到环境变量中 echo $PATH # 如果环境变量中没有包含Python的路径,将以下代码添加到~/.bashrc文件中 export PATH...使用错误的Python版本号 在Python中,每个版本都有其自身的特性,而且不同的程序可能需要不同版本的Python。...依赖文件损坏 依赖文件(如库、包或源代码)可能会损坏,这会导致Python程序无法打开。...缺少配置文件或配置文件内容错误 Python程序需要多个配置文件来运行,而缺少配置文件或内容错误将会导致Python无法打开。

    1.4K10

    Docker for Devs:创建一个开发版镜像

    我们创建了一个新的docker镜像文件: 从我们的生产环境镜像 express-prod-i 获得了基本镜像... ...并创建了值为 "development" 的容器本地 ENV 变量 NODE_ENV...步骤4a:使用数据卷创建开发版镜像 现在我们有了一个表示应用程序开发版本的镜像,我们准备在主机上创建一个容器,其中包含指向应用程序源代码本地目录的 数据卷: 重要提示:如果你已经在容器外运行了应用程序...如果没有列出,可以将 ALL -a 标志添加到上述命令中,以显示所有容器,并查看是否有“express-dev-app”容器列出的退出错误。...它指向我们在本地主机上指定的项目根目录,以及指向容器中的 WORKDIR 目录的目的地。 步骤5:在本地编辑源代码 这大概你一直在等待的时刻吧!...我们将单刀直入,看看我们如何在本地进行源代码更改,并将其反映在容器中。 重要提示:请务必查看第6步,了解关于安装的本地源代码和容器的一些重要提示,命令和解释。

    1.7K91

    WCF服务调用超时错误:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。本地套接字超时是“00:05:30”(已解决)

    问题:   线上正式环境调用WCF服务正常,但是每次使用本地测试环境调用WCF服务时长就是出现:套接字连接已中止。这可能是由于处理消息时出错或远程主机超过接收超时或者潜在的网络资源问题导致的。...本地套接字超时是“00:05:30” 这个问题,查阅了网上很多资料各种说法的都有,有的说是什么请求站点不在同一个域下,有的说什么应为datatable中有一个属性没有赋值各种答非所问的问题。...其实从错误信息中就可以看出来其实就是调用超时了。...此属性的类型为 HostNameComparisonMode,指示在对 URI 进行匹配时,是否使用主机名来访问服务。 默认值为 StrongWildcard,表示忽略匹配项中的主机名。...如果消息超出此限制,则发送方将收到 SOAP 错误。 接收方将删除该消息,并在跟踪日志中创建事件项。 默认值为 65536。 name 一个包含绑定的配置名称的字符串。

    2.5K10

    【详解】HadoopCouldnotlocateexecutablenull解决办法

    可能的原因2.1 环境变量配置错误最常见的原因是​​HADOOP_HOME​​、​​JAVA_HOME​​等环境变量没有正确设置,导致Hadoop无法找到Java或其他依赖的可执行文件。...2.2 缺少必要的本地库Hadoop依赖于一些本地库来执行特定的操作,如压缩和解压缩数据。如果这些库没有正确安装或路径配置有误,也会导致上述错误。...“Could not locate executable null”错误通常是由于环境变量配置错误或缺少必要的本地库引起的。...检查Hadoop环境变量确保你的​​HADOOP_HOME​​环境变量已经正确设置,并且​​$HADOOP_HOME/bin​​已经被添加到系统的​​PATH​​中。...检查Java环境变量Hadoop依赖于Java,确保你的​​JAVA_HOME​​环境变量已经正确设置,并且​​$JAVA_HOME/bin​​已经被添加到系统的​​PATH​​中。

    6900

    完全可复制、经过验证的 Go 工具链

    这种方法证明了二进制文件没有后门或源代码中不存在的其他更改,而无需分解或查看其中的内容。由于任何人都可以验证二进制文件,因此独立的团体可以轻松检测并报告供应链攻击。...如果该库的输出更改导致编译器输出更改,那么 "toolchain1" 和 "toolchain2" 将不会在语义上相同,"toolchain2" 和 "toolchain3" 也不会在比特位上相同。...一个经典的例子是 sort 包,它可以以任何顺序[3]放置比较相等的元素。寄存器分配器可能会根据常用变量对其进行排序,链接器会根据大小对数据段中的符号进行排序。...尽管早期版本的Go已经规范化了大多数这些路径以使用正斜杠,但某种不一致性又重新出现了,导致Windows上的工具链构建略有不同。我们找到并修复了这个错误。...,打包工具在将文件写入存档时会复制VERSION文件中的时间,而不是复制本地文件的修改时间。

    37610
    领券