[Angularjs]國際化


寫在前面

在項目中,有用到國際化,跟着就了解了下使用angularjs實現的國際化,這里做一下記錄。

系列文章

[Angularjs]ng-select和ng-options

[Angularjs]ng-show和ng-hide

[Angularjs]視圖和路由(一)

[Angularjs]視圖和路由(二)

[Angularjs]視圖和路由(三)

[Angularjs]視圖和路由(四)

[Angularjs]ng-class,ng-class-even,ng-class-odd

[Angularjs]單頁應用之分頁

一個例子

這里需要引入angular-translate.min.js,可以從這里進行下載:http://angular-translate.github.io/

這里通過在路由上面添加一個language的參數,通過$routeParams獲取該參數,決定是使用中文還是英文。

單頁頁面

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" ng-app="app">
<head>
    <title>路由</title>
    <script src="JS/angular.min.js"></script>
    <script src="JS/angular-route.min.js"></script>
    <script src="JS/angular-translate.min.js"></script>
    <link href="Css/style.css" rel="stylesheet" />
    <script>
        var app = angular.module('app', ['ngRoute', 'pascalprecht.translate']);
        app.config(['$routeProvider', function ($routeProvider) {
            //這里指定路由
            $routeProvider
                .when('/Login/:lang', {
                    templateUrl: './views/Login.html',
                    controller: 'LoginController'
                })
        }]);
        app.config(function ($translateProvider) {
            $translateProvider.translations('en', {
                TITLE: 'Login',
                UserName: 'UserName',
                Pwd: 'Password',
                BUTTON_Login: 'Login',
                BUTTON_Cancel: 'Cancel',
                PleaseMobile: 'Please input your mobile No.',
                Pwd_tips: 'Please input your password'
            });
            $translateProvider.translations('cn', {
                TITLE: '登錄',
                UserName: '用戶名',
                Pwd: '密碼',
                BUTTON_Login: '登錄',
                BUTTON_Cancel: '取消',
                PleaseMobile: '請輸入注冊手機號',
                Pwd_tips: '請輸入密碼'
            });
            //默認語言
            $translateProvider.preferredLanguage('cn');
        });


        //控制器
        app.controller('LoginController', function ($scope, $translate, $routeParams) {
            console.log($routeParams.lang);
//通過$routeParams獲取路由參數,也就是語言
var language = $routeParams.lang; //轉換語言版本 $translate.use(language); }); </script> </head> <body> <a href="#/Login/en">登錄</a>
<!--視圖 占位--> <div ng-view></div> </body> </html>

View:Login.html

<form id="login-form" class="login-form">
    <div class="cartoon">
        <div id="handLeft" class="hand-left">
            <div class="hand"></div>
        </div>
        <div id="handRight" class="hand-right">
            <div class="hand"></div>
        </div>
    </div>
    <div class="it-text-list it-box">
        <div class="it-label">{{"UserName"| translate}}</div>
        <div class="it-input">
            <input type="text" placeholder='{{"PleaseMobile"| translate}}' name="phoneNum" id="phoneNum">
        </div>
    </div>
    <div class="it-text-list it-text-bottom it-box">
        <div class="it-label">{{"Pwd"| translate}}</div>
        <div class="it-input">
            <input type="password" placeholder='{{"Pwd_tips"| translate}}' name="password" id="password">
        </div>
    </div>
</form>
<div class="cn-buttons">
    <div class="button bt-red">{{"BUTTON_Login"| translate}}</div>
</div>

<div class="cn-buttons">
    <div class="button bt-white">{{"BUTTON_Cancel"| translate}}</div>
</div>

測試

英語:http://localhost:18174/1_4_route.html#/Login/en

中文:http://localhost:18174/1_4_route.html#/Login/cn

 

總結

在使用國際化的時候,查了一些資料,完整的demo還是挺少的,摸索,加實踐,就有了這篇文章。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM