ruby-on-rails – 使用Rails服务器进行AngularJS模板转换的方法
我需要使用AngularJS前端和
Ruby on Rails服务器实现具有多语言支持的应用程序.
我正在寻找一种合理的方法来呈现多种语言的翻译模板.我想出了一个我想要反馈的方法. 在Angular路径定义中,将template属性设置为html partial,其中只有一个ng-include,其中src属性值由控制器设置.需要这种方法来动态修改要从服务器获取的模板的路径;它在这里描述: 所以Angular路由配置看起来像: angular.module('myApp',[]). config(function ($routeProvider) { $routeProvider.when('/sites/new',{ template: '<div ng-include src="templateUrl"></div>',controller: 'RouteController' }); }); 控制器看起来像: // Set a prefix on the URL path,something like “es” function RouteController($scope,$routeParams) { $scope.templateUrl = $routeParams.locale + "/template/sites/site"; } 这里$routeParams.locale用于设置语言环境,但可以是用户操作设置的变量.动态修改模板URL路径以添加区域设置前缀的方法似乎有点复杂,但我不知道其他方式. 在Rails端,在routes.rb中,添加一个路由: match '/:locale/template/*template' => 'template#get' 该路由使用路由通配,因此params [:template]值可以是多级路径. class TemplateController < ApplicationController layout false caches_page :get def get render(template: "template/#{params[:template]}") end end Rails I18n支持翻译在erb模板中使用,根据locale参数进行翻译. 该方法尽可能地将翻译处理推送到服务器端. 这种方法有什么根本问题吗? 可以做得更好吗? 解决方法
您可能对
angular-translate模块感兴趣.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |