簡體   English   中英

在Angular中本地化路線

[英]Localizing routes in Angular

我正在嘗試創建多種語言的Angular應用程序,但是遇到了路由問題。 我找到了一種解決方法,以使必要的路由對2種語言均有效:

var app = angular.module("app", ["localization", "ngResource", "ngRoute"]).
config(function ($routeProvider, $locationProvider) {
    $routeProvider.
        when('/en-US/Gameplan/Admin/Fixtures/List', { controller: FixtureListController, templateUrl: '/Content/Templates/Fixtures.html' }).
        when('/da-DK/Gameplan/Admin/Fixtures/List', { controller: FixtureListController, templateUrl: '/Content/Templates/Fixtures.html' }).
        when('/en-US/Gameplan/Admin/Fixtures/Add', { controller: FixtureAddController, templateUrl: '/Content/Templates/FixtureAddEdit.html' }).
        when('/da-DK/Gameplan/Admin/Fixtures/Add', { controller: FixtureAddController, templateUrl: '/Content/Templates/FixtureAddEdit.html' }).
        when('/en-US/Gameplan/Admin/Fixtures/Edit/:fixtureId', { controller: FixtureEditController, templateUrl: '/Content/Templates/FixtureAddEdit.html' }).
        when('/da-DK/Gameplan/Admin/Fixtures/Edit/:fixtureId', { controller: FixtureEditController, templateUrl: '/Content/Templates/FixtureAddEdit.html' }).
        otherwise({ redirectTo: '/en-US/Gameplan/Admin/Fixtures/List' });
    $locationProvider.html5Mode(true); //will use html5 mode rather than hashbang where available
});

但是,我仍然對鏈接有疑問,目前我的鏈接如下所示:

<a href="/en-US/Gameplan/Admin/Fixtures/Add"><i class="glyphicon glyphicon-plus"></i></a>
<a href="/en-US/Gameplan/Admin/Fixtures/Edit/{{fixture.Id}}"><i class="glyphicon glyphicon-edit"></i></a>

我不想對URL進行硬編碼,並且有一個客戶端對象返回語言環境(在這種情況下為en-US或da-DK),但是我無法動態設置href值。 有沒有辦法在Angular中做到這一點,或者在本地化路線方面采用完全不同的方法?

這不是AngularJS特有的,但是為什么不知道用戶想要的UI語言就立即設置cookie? 這樣,客戶端和服務器都可以在每個頁面上訪問它,而不必在URL中穿梭它。

這可能為時已晚,但是如果您使用的是Angular 2x,則有一個庫localize-router 你可以在這里找到它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM