【问题标题】:how can I translate special character in csv如何翻译csv中的特殊字符
【发布时间】:2021-01-20 03:32:55
【问题描述】:

这是 Js 中的原始消息

$.mage.__("Please enter a valid Street Address not including \" , / , \\ , &.")

预期消息: 请输入有效的街道地址,不包括 " , / , \ , &。

csv 文件:

我尝试在 csv 文件中翻译此文本,如下例所示,但它不起作用!有什么办法可以解决吗??

"Please enter a valid Street Address not including " , / , \\ , &.", "abc abc valid Street Address not including " , / , \\ , &."
"Please enter a valid Street Address not including \" , / , \\ , &.","abc abc valid Street Address not including \" , / , \\ , &."
"Please enter a valid Street Address not including " , / , \\ , &.","abc abc valid Street Address not including \" , / , \\ , &."

【问题讨论】:

  • 你想用这些符号生成吗?你是如何将这些数据发送到 js 的?
  • csv 将原始文本映射到 Js 中然后翻译,例如:"word","word after translate"
  • 然后在变量中使用这些语句..
  • \" equal " 这是我的原始 js 代码:$.mage.__("请输入有效的街道地址,不包括 \" , / , \\ , &.") 期望混乱:请输入有效的街道地址,不包括 " , / , \ , &。
  • 它以什么方式“不起作用”?

标签: php csv magento internationalization translation


【解决方案1】:

您需要使用 javascript 代码添加特殊字符:-

 $.mage.__("Please enter a valid Street Address not including \' , \\ , \" , \& ")

检查一下。

如果您需要更多特殊字符,请在您的字符串中使用这些代码/短代码。

有一些保留的单字符转义序列用于字符串:

\b: backspace (U+0008 BACKSPACE)
\f: form feed (U+000C FORM FEED)
\n: line feed (U+000A LINE FEED)
\r: carriage return (U+000D CARRIAGE RETURN)
\t: horizontal tab (U+0009 CHARACTER TABULATION)
\v: vertical tab (U+000B LINE TABULATION)
\0: null character (U+0000 NULL) (only if the next character is not a decimal digit; else its an octal escape sequence)
\': single quote (U+0027 APOSTROPHE)
\": double quote (U+0022 QUOTATION MARK)
\\: backslash (U+005C REVERSE SOLIDUS)
\&: ampersand
\r: carriage return
\t: tab
\b: backspace

【讨论】:

  • $.mage.__("请输入有效的街道地址,不包括 \" , / , \\ , &.") 我已经用过了,我的意思是如何映射消息和翻译?? 因为我映射的 csv 不起作用
【解决方案2】:

在 csv 中,您必须关心 2 个字符:分隔符字符和引号字符(最常见的 ,")。

如果字段包含分隔符,它们必须用双引号括起来,如果字段包含双引号,则必须用另一个双引号(或\ Linux 样式)转义。

所以你的示例文件:

"Please enter a valid Street Address not including " , / , \\ , &.", "abc abc valid Street Address not including " , / , \\ , &."
"Please enter a valid Street Address not including \" , / , \\ , &.","abc abc valid Street Address not including \" , / , \\ , &."
"Please enter a valid Street Address not including " , / , \\ , &.","abc abc valid Street Address not including \" , / , \\ , &."

变成:

"Please enter a valid Street Address not including "" , / , \\ , &.","abc abc valid Street Address not including "" , / , \\ , &."
"Please enter a valid Street Address not including \"" , / , \\ , &.","abc abc valid Street Address not including \"" , / , \\ , &."
"Please enter a valid Street Address not including " , / , \\ , &.","abc abc valid Street Address not including \"" , / , \\ , &."

也不要像第一行那样在分隔符和字段之间放置空格。这可能会导致某些解析器出现问题。

【讨论】:

  • 我的原始 js mes : $.mage.__("请输入有效的街道地址,不包括 \" , / , \\ , &.")**** 预期消息:请输入有效街道地址不包括 " , / , \ , &.**** Csv(not work): "请输入有效街道地址,不包括 " , / , \\ , &.", "abc abc valid Street Address not包括 " , / , \\ , &."
  • csv 数据无效。您必须转义字段内的双引号。请参阅我的答案中的示例。
【解决方案3】:

"请输入一个有效的街道地址,不包括"、/、\、&。","请输入一个有效的街道地址,不包括"、/、\、&。"

在您的 csv 文件中添加翻译,运行以下命令后:

php bin/magento s:up

php bin/magento s:s:d -f {'你的商店语言代码如果你使用..'}

php bin/magento c:f

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-18
    相关资源
    最近更新 更多