gpt4 book ai didi

localization - 本地化(或缺乏)什么时候是一件坏事?

转载 作者:行者123 更新时间:2023-12-02 02:47:28 25 4
gpt4 key购买 nike

以下代码返回一条消息,说明输入值是否为回文:

(为了这篇文章,语法并不重要,或者用任何特定语言编写)

function isPalindrome(
value: string,
successMessage: string = "Is palindrome",
failureMessage: string = "Is not palindrome"): string {

return value.reverse() == value ? successMessage : failureMessage;
}

请注意,在上面的代码中,默认消息是用英语编写的,但是由于它们是作为参数提供的,因此可以轻松地本地化此方法,并且由于该方法具有消息的默认值,因此这不会强制开发人员提供它们;例如:

isPalindrome("level") // returns "Is palindrome"

但是我们可以展示本地化;例如,西类牙语:

isPalindrome("level", "es palíndromo", "no es palíndromo") // returns "es palíndromo"

这让我开始思考,什么时候应该在设计代码时考虑本地化?

另一个例子是有异常(exception);例如:

class PalindromeException : Exception("Is not a palindrome")

function validatePalindrome(value: string): void {
if (value.reverse() != value) {
throw PalindromeException();
}
}

请注意,在此示例中,无法在异常中本地化消息。我知道使用第一个示例中的相同原则可以很容易地解决这个问题,但它是有意设计的,以证明缺乏全局化。

因此,什么时候应该将全局化应用于代码,以便它可以本地化?什么时候重要,什么时候不重要?

最佳答案

我相信,没有理想的答案 - 一切都取决于您的架构和用例。

但是,我建议采用以下模式:

  1. 所有日志消息(服务器和客户端)都应该是英文的
  2. 所有错误 API 响应都应始终提供英文描述和唯一的错误代码,您可以在客户端将其转换为友好的消息
  3. 为了提供良好的用户体验,所有客户端消息都应使用用户的语言

一般来说,最好使用英文提供所有技术数据(日志、错误等)。所有面向用户的数据都必须是用户可以理解的。

关于localization - 本地化(或缺乏)什么时候是一件坏事?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53823344/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com