gpt4 book ai didi

php - 构建网站翻译文件

转载 作者:可可西里 更新时间:2023-11-01 12:38:40 25 4
gpt4 key购买 nike

我在建站的时候遇到过好几次这个问题。我将以使用 PHP 和 Laravel 为例进行说明,但这个问题在多个平台中很常见。这已经在几个问题( post1post2post3post4 和其他一些问题)中得到解决,但帖子并没有真正得到好的答案。

问题是:在语言文件中构建翻译内容的最佳方式是什么?

我目前正在使用 Laravel(我没有提及版本,因为 Laravel 4Laravel 5 具有相似的本地化功能,至少对于本主题的目的而言足够相似)。

本地化跨语言文件(en、es、de、fr...)构建内容,其中可以有多个 .php 文件,这些文件包含返回多级字典结构的 return 语句。

/lang
/en
messages.php
/es
messages.php

文件包含如下内容:

<?php    
return [

'example1' => 'example message for value exaple-key',
'example2' => [
'sub-example' => 'example message for example1.sub.example',
],
];

调用这个是通过做这样的事情来完成的:

//Laravel 5    
trans('messages.example1'); //outputs 'example message for value exaple-key'
trans('messages.example2.sub-example'); //outputs 'example message for example1.sub.example'

//Laravel 4
Lang::get('messages.example1'); //outputs 'example message for value exaple-key'
Lang::get('messages.example2.sub-example'); //outputs 'example message for example1.sub.example'

我想到了几种分组方法:

  1. 按网站内容

    示例:homepage.php、page1.php、page2.php...

  2. 按逻辑域:

    示例:auth.php、validation.php、pagination.php...

  3. 通过 html:

    示例:buttons.php、popup_messages.php、form_data.php...

  4. 直译:

    示例:simple_words.php, phrases.php... 并且包含诸如 'password-to-short' => 'your password is to long' 之类的内容

  5. 前面提到的一些混合/组合

所有这些都有一些明显的优点和缺点,我不会尝试深入探讨,但第 5 选项很可能是最好的解决方案,但仍然存在界限在哪里的问题尽量减少短语和内容的重复。

另一个问题是如何解决首字母大写、小写以及结尾标点符号的问题。

我确实研究过这个问题,但没有明确的指导方针和/或可供学习的好例子。

欢迎大家提出意见。

最佳答案

我倾向于将我的 Laravel 应用程序中的功能分组为独立的“组件”。例如,我最近一直在为应用程序开发电子邮件事件功能,因此将服务提供商类、模型、服务类放在 app/Email 的文件夹中。

考虑到这一点,我以类似的方式组织我的翻译。所以即使在这个项目中我们不翻译字符串,如果我们是的话,我会创建一个 resources/assets/lang/en/email.php 文件,并将电子邮件组件的翻译字符串放在那里.

所以在另一个项目中,我的目录结构可能是这样的:

  • /资源
    • /语言
      • /zh
        • auth.php
        • email.php
        • events.php
        • news.php
        • 分页.php
        • 密码.php
        • 验证.php

希望这对您有所帮助。

关于php - 构建网站翻译文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33549409/

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