<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                {% raw %} # Symfony 翻譯教程 > 原文: [http://zetcode.com/symfony/translation/](http://zetcode.com/symfony/translation/) Symfony 翻譯教程顯示了如何在 Symfony 中使用不同的語言。 國際化和本地化正在使計算機軟件適應不同的語言和文化。 ## Symfony 翻譯 對于國際化和本地化,Symfony 包含用于這些任務的`symfony/translation`包。 翻原文件具有以下強制格式: `domain.locale.loader`。 `domain`是將消息組織成組的一種可選方式。 默認域為`messages`。 `locale`定義翻原文件的語言環境; 例如`zh`,`sk`或`de`。 `loader`是一種加載和解析文件的方式。 例如 xlf,php 或 yaml。 可以將翻譯后的文本寫入不同的文件格式。 Symfony 轉換組件支持許多轉換格式,例如 XLIFF,PHP,Qt,`.po`,`.mo`,JSON,CSV 或 INI。 推薦的格式是 XLIFF。 可以將翻原文件放在三個不同的目錄中,其中第一個位置具有最高優先級:`translations/`,`src/Resources/%bundle name%/translations/`或`Resources/translations/`。 ## Symfony 翻譯示例 在下面的示例中,我們創建一個簡單的 Web 應用,該應用根據語言環境返回一條消息。 我們使用默認的`messages`域。 ```php $ composer create-project symfony/skeleton symtrans ``` 使用`composer`,我們創建一個新的 Symfony 骨架項目。 ```php $ cd symtrans ``` 我們轉到項目目錄。 ```php $ composer require symfony/translation $ composer require annotations $ composer require maker ``` 我們安裝了三個包:`symfony/translation`,`annotations`和`maker`。 ```php $ composer require server --dev ``` 我們安裝開發 Web 服務器。 `config/packages/translation.yaml` ```php framework: default_locale: '%locale%' translator: paths: - '%kernel.project_dir%/translations' fallbacks: - '%locale%' ``` 在`translation.yaml`文件中,我們定義了默認語言環境。 它使用`%locale%`參數,該參數在`services.yaml`配置文件中設置。 `config/services.yaml` ```php parameters: locale: 'en' ... ``` 默認情況下,我們具有英語默認語言環境。 `translations/messages.en.xlf` ```php <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" target-language="en" datatype="plaintext" original="file.ext"> <body> <trans-unit id="text.message"> <source>text.message</source> <target>Today is a beautiful day</target> </trans-unit> </body> </file> </xliff> ``` 這是英語的翻原文件。 ```php <trans-unit id="text.message"> <source>text.message</source> <target>Today is a beautiful day</target> </trans-unit> ``` 我們只有一個翻譯部門。 翻譯單位由 ID 標識。 `translations/messages.sk.xlf` ```php <?xml version="1.0"?> <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2"> <file source-language="en" target-language="sk" datatype="plaintext" original="file.ext"> <body> <trans-unit id="text.message"> <source>text.message</source> <target>Dnes je krásny deň.</target> </trans-unit> </body> </file> </xliff> ``` 這是斯洛伐克語的翻原文件。 ```php $ php bin/console clear:cache ``` 請注意,我們可能需要清除緩存。 ```php $ php bin/console make:controller HomeController ``` 我們創建一個`HomeController`。 `src/Controller/HomeController.php` ```php <?php namespace App\Controller; use Symfony\Component\Routing\Annotation\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Translation\TranslatorInterface; class HomeController extends Controller { /** * @Route("/", name="home") */ public function index(TranslatorInterface $translator) { $translated = $translator->trans('text.message',[], null, 'sk'); return new Response($translated); } } ``` `HomeController`返回翻譯后的消息。 ```php public function index(TranslatorInterface $translator) { ``` 我們注入了`TranslatorInterface`以獲取 Symfony 翻譯服務。 ```php $translated = $translator->trans('text.message',[], null, 'sk'); ``` 轉換程序的`trans()`方法轉換給定的消息。 最后一個參數是語言環境。 在我們的案例中,我們使用了斯洛伐克語區域設置,因此我們希望在斯洛伐克語中輸入一條消息。 ```php $ php bin/console server:start ``` 我們啟動服務器。 ```php $ curl localhost:8000 Dnes je krásny deň. ``` 我們使用`curl`生成 GET 請求,并在斯洛伐克語中收到一條消息。 ## 使用 Twig 模板 接下來,我們將使用 Twig 模板。 ```php $ composer require twig ``` 我們安裝 Twig。 `HomeController.php` ```php <?php namespace App\Controller; use Symfony\Component\Routing\Annotation\Route; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Translation\TranslatorInterface; class HomeController extends Controller { /** * @Route("/home", name="home") */ public function index(TranslatorInterface $translator) { $message = $translator->trans('text.message',[], null, 'sk'); return $this->render('home/index.html.twig', [ 'message' => $message ]); } } ``` 控制器翻譯消息并呈現 Twing 模板。 它向模板發送翻譯后的消息。 `templates/home/index.html.twig` ```php {% extends 'base.html.twig' %} {% block title %}Home page{% endblock %} {% block body %} {% trans %}%message%{% endtrans %} {% endblock %} ``` 在模板中,我們使用 Twig `{% trans %}`和`{% endtrans %}`指令顯示消息。 `templates/base.html.twig` ```php <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>{% block title %}Welcome!{% endblock %}</title> {% block stylesheets %}{% endblock %} </head> <body> {% block body %}{% endblock %} {% block javascripts %}{% endblock %} </body> </html> ``` 這是自動生成的基本模板文件。 在本教程中,我們使用了 Symfony 中的翻譯。 您可能也會對以下相關教程感興趣: [Symfony 簡介](/symfony/intro/), [Symfony 表單教程](/symfony/form/), [Symfony 驗證教程](/symfony/validation/), [Symfony 上傳文件教程](/symfony/uploadfile/), [Symfony 服務教程](/symfony/service/), [Symfony 請求教程](/symfony/request/), [PHP 教程](/lang/php/)。 {% endraw %}
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看