<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之旅 廣告
                # 國際化 [TOC=2,3] ## 獲取語言 可以通過?`http.lang`?方法從 cookie 或者 header 里獲取當前用戶的語言。如: ~~~ let lang = http.lang(); ~~~ 如果要支持從 cookie 里獲取用戶選擇的語言,那么需要設置語言在 cookie 里的名稱。可以在配置文件`src/common/config/locale.js`?里修改,如: ~~~ export default { cookie_name: "think_locale", //存放語言的 cookie 名稱 default: "en" //默認語言 }; ~~~ 在 Controller 里可以直接通過?`this.lang`?方法獲取對應的語言。 ## 從 URL 中解析語言 有些情況下,語言是要從 URL 中解析。比如:當前頁面的地址是?`https://www.thinkjs.org/zh-CN/doc/2.0/i18n.html`,就包含了語言?`zh-CN`。 這種情況下需要在項目里通過 middleware 來解析其中的語言,如: ~~~ think.middleware("get_lang", http => { let supportLangs = think.config("locale.support"); let lang = http.pathname.split("/")[0]; //從 URL 中獲取語言 if(supportLangs.indexOf(lang) > -1){ http.pathname = http.pathname.substr(lang.length + 1); }else{ lang = http.lang(); //從 cookie 或者 header 中獲取語言 if(supportLangs.indexOf(lang) === -1){ lang = http.config("locale.default"); //默認支持的語言 } } http.lang(lang, true); //設置語言,并設置模版路徑中添加語言目錄 }); ~~~ 從 URL 中解析到語言后,通過?`http.lang`?方法設置語言,后續在 Controller 里可以直接通過?`http.lang`?來獲取語言了。 定義 middleware?`get_lang`?后,添加到對應的 hook 里。如: ~~~ export default { route_parse: ["prepend", "get_lang"], //將 get_lang 前置添加到 route_parse hook 里 } ~~~ ## 語言變量配置 支持國際化的項目需要配置變量在不同語言下的值,配置文件在?`src/common/config/locale/[lang].js`,配置格式如下: ~~~ // src/common/config/locale/zh-CN.js export default { "title-home": "ThinkJS官網 - A Node.js MVC Framework Support All Of ES6/7 Features", "title-changelog": "更新日志 - ThinkJS官網", } ~~~ ~~~ // src/common/config/locale/en.js export default { "title-home": "ThinkJS - A Node.js MVC Framework Support All Of ES6/7 Features", "title-changelog": "Changelog - ThinkJS" } ~~~ ## 獲取語言變量 配置語言變量后,可以通過?`http.locale`?方法來獲取當前語言對應的變量值。如: ~~~ let homeTitle = http.locale("title-home"); ~~~ 如果在 Controller 中,可以直接通過?`this.locale`?方法來獲取,如: ~~~ export default class extends think.controller.base { indexAction(){ let homeTitle = this.locale("title-home"); } } ~~~ ## 模版里使用語言變量 模版里可以通過?`_`?函數來獲取對應的語言值。下面以?`ejs`?模版引擎為例: ~~~ <%- _("title-home") %> ~~~ ## 設置模版語言路徑 有些項目中,需要根據不同的語言定制不同的模版,這時模版路徑里加一層語言目錄來處理就比較合適了。如:`view/zh-CN/home/index_index.html`,路徑中添加了一層?`zh-CN`?語言目錄。 可以通過?`http.lang`?方法設置語言并設置在模版路徑里添加一層語言目錄。如: ~~~ http.lang(lang, true); // true 表示在模版路徑里添加一層語言目錄 ~~~ 在 Controller 里可以通過?`this.lang`?方法來設定。如: ~~~ export default class extends think.controller.base { indexAction(){ let lang = getFromUrl(); this.lang(lang, true); ... } } ~~~
                  <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>

                              哎呀哎呀视频在线观看