• 使用gettext提取c#中的多语言占位符(nopCommerce示例篇)


    i18n国际化通常的作法是使用gettext,即在源码中使用特殊的关键字来标识这个字符串将可能被翻译,如

    @if (Model.IsCustomerForumModerator)
                {
                    <li class="status">
                        <label>@T("Forum.Status"):</label>
                        <span>@T("Forum.Moderator")</span>
                    </li>
                }

    @T("xxxx") 这句代码的意思就是说要翻译 “Forum.Status”这个词。

    那么我们在开发完一个项目后,怎么提取这些字符串呢?事实上很久以前就已经有了这样的工具,( https://www.gnu.org/software/gettext/ ) xgettext.exe就是干这事的。

    gettext有相当长的文档,包含的工具非常多,提取字符串用的是 xgettext

    1.首先我们得告知 xgettext 输入源是什么。

    我们用以下代码生成一个待提取文件的文件列表

    dir *.cshtml /s/b>cshtml.list

    输出的文件类似

    2. 使用xgettext生成 PO 文件

    xgettext --files-from="C:Users用户名Documentsopensource
    opPresentationNop.Webcshtml.list" --output-dir=c:
    optext --language=C# -kT -kNopResourceDisplayName --from-code=UTF-8

    *需要在c盘先创建一个目录noptext(你可以自己指定),-kT,指示T为关键字

    得到的PO文件为:

    有了PO文件你就可以使用翻译工具翻译啦!!

    在此推荐客户端工具 https://poedit.net/

    或者线上大名鼎鼎的crowdin(收费) : https://crowdin.com/  

    -----------------------------------------------------广告分隔线-------------------------------------------------------------------------------------------

    最后欢迎加入 nop的翻译项目

    https://crowdin.com/project/nopcommerce

  • 相关阅读:
    使用Node.js创建第一个应用
    Node.js安装
    Node.js简介
    c#中的索引器
    ASP.NET常用内置对象(三)Server
    ASP.NET常用内置对象(二)Response
    ASP.NET常用内置对象(一)Request
    利用JDBC工具类 模拟用户登录!
    JDBC工具类完整版!
    用户登录
  • 原文地址:https://www.cnblogs.com/cabbage/p/gettext.html
Copyright © 2020-2023  润新知