- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在寻找一种在我的 Symfony2 应用程序和我的 Angular.JS 应用程序之间共享我的翻译的好方法,它们本质上是相同的应用程序,但它们的行为却大不相同。
首先,我制定了一个指令,允许在我的 angular js 应用程序中使用 [[ variable ]] 进行模板化,这样我就可以将来自 twig 的变量与我的 angular 变量一起使用。
所以我想实现的是将我的句子翻译成用户喜欢的本地化。
所以我的结论是我想使用 Symfony 的翻译功能,因为 Angular 对此没有很好的支持。我还想使用 Symfony 包含的所有内置功能,比如自动更新文件、支持 YAML 等。但我需要弄清楚如何将它们传输到我的 JS 应用程序以及如何在 Symfony 中检测它们,所以两个应用程序都可以使用它们。
所以我最初的想法:
更改翻译的捕获或至少向范围添加一个额外的翻译。
{% trans %}Hello [[name]]{% endtrans %}
<trans name="My Name" translation="Hello [[name]]" />
并且还支持多元化等所有其他功能
这将生成一个包含翻译和复数等的文件。
通过 Angular ajax 调用请求语言并将其保存到客户端的本地存储中。
这将允许我用正确的值替换上面的 trans 指令。这不是设置的问题。但是,它需要从 Angular 可以读取的任何格式导出到 JSON。
然后需要有一个匹配器,并且需要支持多元化和所有其他可用的功能。
其他想法
一般来说,当你做一个 Angular.JS 应用程序时,最好不要使用 Symfony2 翻译,因此只使用 Angular 翻译,否则用 Symfony2 Twigs 编写并翻译的文本可能无法在 Angular 中翻译。但是这些文件的生成我发现如果 Symfony 可以捕获并吐出会更好。
我认为这需要做一些工作才能扎实,但我觉得这需要解决。感谢任何想法和有用的评论,我正在考虑在 GitHub 上为此启动一个项目,为此提供适当的支持。但如果已经有这样的东西,那么使用它可能会更好。
/马库斯
最佳答案
这里有一个使用自定义 Angular 过滤器来简化标记的建议
HTML:
<div ng-app="myApp" ng-controller="MainCtrl">
{{ item |translate }}
</div>
JS
var words={
'fr': {'Bus': "AutoBus"}
};
var app = angular.module('myApp', []);
app.constant('lang','fr');
app.factory('wordService',function(lang){
return {
getWord:function(val){
return words[lang][val];
}
}
})
app.filter('translate', function(wordService){
return function(val){
return wordService.getWord(val)
}
})
app.controller('MainCtrl', function($scope) {
$scope.item = 'Bus';
});
您可以使用服务从服务器或 localStorage 请求翻译文件(如果它们已经存在)。只需在运行时设置语言。
您可以以任何适合您在两个应用程序中使用它的方式重新配置单词对象。
关于javascript - Symfony2 和 Angular.JS 之间共享的翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19686291/
我开始从事一个用 Symfony 2.8 编写的大型项目。将整个项目升级到 SF 3 需要数百小时,现在还不可能。我想到了一个想法,将 symfony/symfony 包解压到它替换的单个包中(com
我在提交表单后使用 FOSUserEvents,但订阅者调用了两次。 这样我的验证码第一次有效第二次无效 这是我的代码 router = $router; $this->request
我有以下路线: blog_show: path: /test/123 defaults: { _controller: TotalcanBravofillBundle:Te
我是测试新手。我想测试我的功能。我已经成功安装了 phpUnit。我在互联网上查看了许多教程。但我无法获得有关测试的正确信息。这是我的功能代码: public function loginAction
我正在尝试重现 facebook batch requests 的行为在他们的图形 api 上运行。 所以我认为最简单的解决方案是在 Controller 上向我的应用程序发出几个请求,例如: pub
在 Symfony Progress Bar documentation有一个超酷酒吧的示例图像。不幸的是,看起来文档的其余部分没有解释如何获得这样的结果。 这是图片,以防您错过: 我怎么才能得到它?
我使用Finder发送假脱机电子邮件,但是自动名称生成器将点放在文件名中,有时它们出现在文件的开头。 查找程序似乎无法获取具有该名称的文件-那些文件被隐藏了……有人经历过这种行为吗?有什么建议如何使用
我正在尝试进行 LDAP 身份验证,我目前遇到此类错误: ServiceNotFoundException: The service "security.firewall.map.context.ma
有没有办法验证和检查集合数组是否为空。我已经尝试过: /** * @Assert\NotBlank() * @Assert\Length( min = 1) */ protected $work
使用Smyfony2和Doctrin2,可以使用以下示例创建数据固定装置:http://symfony.com/doc/current/bundles/DoctrineFixturesBundle/i
我看到在大多数Symfony 2示例中,例如,不存在记录时,Symfony 2会引发异常。我认为这种方法对最终用户不友好。为什么有人更喜欢引发异常而不在Flashbag上添加一些错误消息? 最佳答案
我对项目中的以下服务有疑问: app.security.guardAuthenticatorLoginPassword: class: AppBundle\Security\LoginPa
symfony缓存和登录Docker容器存在问题。 Web服务器从www-data用户和组执行,当我使用docker上安装的php从docker容器中清除symfony缓存时,它从root执行。 因此
我想了解 symfony 中的服务 我已阅读http://symfony.com/doc/2.3/book/service_container.html#creating-configuring-se
因为我对 Symfony 和 Doctrine 还很陌生,所以我有一个可能很愚蠢的问题;-) 有人可以用简单的词语向我解释集合(尤其是实体中的ArrayCollections)吗?它是什么以及何时以及
我收到了这个表格: {{ form_start(form) }} {{ form_end(form) }} 我想检查用户是否登录,我这样做了: {% if is_g
我的网站已准备好部署,我正在尝试将其设置为在线。 一些信息: 主持人是 OVH。 它不允许 SSH,我必须使用 FTP 发送文件。也没有命令行。 我现在希望能够在子目录中设置网站:/www/test(
过去几个月以来,我一直在尝试与symfony合作。昨晚我自动删除了不需要的存储库。之后,我无法使用symfony命令创建新的symfony项目。当我在终端中运行Symfony new Security
In the environnement variable, then in system variable, I edited the path and added在环境变量中,然后在系统变量
我们有一个 Symfony 1.4 应用程序,想升级到 Symfony 4。是否有可能或者我们必须重新编程该应用程序? 我们询问了我们附近的一家软件公司,他们告诉我们必须重新编写应用程序。 最佳答案
我是一名优秀的程序员,十分优秀!