मैं इन पंक्तियों के साथ कुछ का उपयोग करें:
CoffeeScript
angular.module('app')
.config([
'$stateProvider'
($stateProvider) ->
$stateProvider.state 'app',
abstract: true
url: '/{locale}'
$stateProvider.state 'app.root',
url: ''
$stateProvider.state 'app.root.about',
url: '/about'
])
जावास्क्रिप्ट
angular.module('app').config([
'$stateProvider', function($stateProvider) {
$stateProvider.state('app', {
abstract: true,
url: '/{locale}'
});
$stateProvider.state('app.root', {
url: ''
});
return $stateProvider.state('app.root.about', {
url: '/about'
});
}
]);
इस के साथ, आप कर सकते हैं injec वहाँ स्थान के लिए टी $stateParams
अपने नियंत्रक में और पाने के लिए उपयोग:
CoffeeScript
angular.module('app')
.controller('appCtrl', [
'$scope', '$stateParams'
($scope, $stateParams) ->
$scope.locale = $stateParams.locale
])
जावास्क्रिप्ट
angular.module('app').controller('appCtrl', [
'$scope', '$stateParams', function($scope, $stateParams) {
return $scope.locale = $stateParams.locale;
}
]);
या, यदि आप स्वचालित रूप से पूरे पृष्ठ को प्रभावित करना चाहते हैं, उपयोग एक आवेदन नियंत्रक या में $stateChangeStart
घटना समान:
CoffeeScript
$scope.$on '$stateChangeStart', (event, toState, toParams, fromState, fromParams) ->
$translate.use(toParams.locale)
जावास्क्रिप्ट
$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
$translate.use(toParams.locale);
});
ध्यान दें कि यदि आप उपयोग कर रहे हैं कोणीय-अनुवाद v1.x आप $translate.uses
बजाय $translate.use
उपयोग करना चाहिए।
बस एक छोटा सा संपादित करें: $ translate.use का उपयोग करता है – Leon
आह के बजाय, हाँ - इस v1.x और v2.x और मैं इस समय v1.x उपयोग कर रहा हूँ के बीच बदल दिया है लगता है - मैं जवाब में एक नोट बना देंगे, धन्यवाद। – mjtko
मैं यूआरएल को एक भाषा कोड रखना चाहता हूं जब उपयोगकर्ता 'domain.com' -> 'डोमेन द्वारा वेबपृष्ठ के मुख्य पृष्ठ पर जाता है।com/en/' ऐसा करने के लिए मुझे पहले उपयोगकर्ता भाषा का पता लगाने की आवश्यकता है और फिर url में' {locale} 'पैराम जोड़ें। क्या इसके लिए कोई अच्छा समाधान है? – user2814599