我在 Polymer 元素中显示国际化字符串,如下所示:
<div>
<span class="content">{{myContent}}</span>
</div>
... 并具有以下 Dart 代码:
@observable String myContent;
//...
void onUpdateLocale(_locale) {
myContent = getMyContent();
}
//...
getMyContent() => Intl.message('All my content ...', name:'myContent',
desc: 'This is my content',
args: [],
examples: {'None' : 0});
但是;当 Google 抓取该应用程序时,它只会提取“{{myContent}}”,而不是其内插值,即实际的国际化内容。有没有办法解决这个问题并制作一个对 SEO 友好的国际化 Polymer.dart 应用程序?
最佳答案
不是很清楚。虽然最近 Google 宣布他们正在评估 Javascript 来为页面编制索引,但我还没有看到任何关于这与服务器呈现页面方法相比如何的深入评估。
然后是 Bing 等非 Google 搜索引擎的问题。
目前的 Polymer 并没有真正进行服务器端渲染,据我所知,该团队在不久的将来没有提供的计划。
如果您的项目/业务依赖于 SEO,我不会冒险使用聚合物。
您有两种选择来解决此问题:
每当爬虫请求页面时,使用 phantom.js 在服务器端呈现页面。
使用像 ajaxsnapshots 这样的第三方服务。
忘记聚合物并使用 react.js 组件框架。 React 有一种在服务器端渲染虚拟 DOM 的方法。如果您使用的是 node.js 框架,这将无缝运行。 JVM 框架以及 Java 6+ 附带 Javascript 引擎(在 Java 8 中得到了极大改进。谷歌“nashhorn”)应该是可能的。
关于internationalization - SEO 友好的国际化 Polymer.dart,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20887874/
作为新的阿里云用户,您可以50免费试用多种优惠,价值高达1,700美元(或8,500美元)。这将让您了解和体验阿里云平台上提供的一系列产品和服务。如果您以个人身份注册免费试用,您将获得价值1,700美元的优惠。但是,如果您是注册公司,您可以选择企业免费试用,提交基本信息通过企业实名注册验证,即可开始价值$8,500的免费试用!本教程介绍了如何设置您的帐户并使用您的免费试用版。关于免费试用在我们开始此试用之前,您还必须遵守以下条款和条件才能访问您的免费试用:只有在一年内创建的账户才有资格获得阿里云免费试用。通过此免费试用优惠,用户可以免费试用免费试用活动页面上列出的每种产品一次。如果您有多个帐
我的rails.pt-BR.yml上有这个:br:errors:format:!'%{attribute}%{message}'messages:restrict_dependent_destroy:one:"Nãoépossívelexcluiroregistropoisexisteum%{record}dependente"many:"Nãoépossívelexcluiroregistropoisexistem%{record}dependentes"在我的模型中,我有这个:has_many:entities,dependent::restrict_with_error每当res
我想删除字符串中的非字母数字字符,但不删除国际字符,如重音字母。我也想保留空白。这是我目前所拥有的:the_string=the_string.gsub(/[^a-z0-9-]/i,'')虽然这确实会删除国际重音字母字符。我使用的解决方案:the_string=the_string.gsub(/[^\p{Alnum}\p{Space}-]/u,'')有效!谢谢。 最佳答案 您可以使用characterproperties这样做:the_string.gsub(/[^\p{Alnum}-]/,'')您可能还想使用\p{Space}来保
Spring国际化遇到的坑org.springframework.context.NoSuchMessageException:Nomessagefoundundercode‘xxx.xxxx’forlocale‘zh_CN’背景以前做的项目客户群体只有国内的客户,从来没有考虑过语言文字的问题。这次有一个需求的返回内容,要根据客户设置的语言返回不同的语言。尝试使用了以后,结果发现怎么都不好使,一直报的一个错误如下:org.springframework.context.NoSuchMessageException:Nomessagefoundundercode'user.name'forloc
只是在没有Rails环境的情况下让I18n工作有困难:irb>require'i18n'=>trueirb>I18n.load_path=Dir['/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/en.yml']=>["/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/locale/en.yml"]irb>I18n.load_path+=Dir['/usr/lib/ruby/gems/1.9.1/gems/rails-i18n-0.6.6/rails/loca
我正在生成CSV文件,这些文件生成后需要在Excel中打开和查看。Excel似乎需要与UTF-8不同的编码。这是我的配置和生成代码:csv_config={col_sep:";",row_sep:"\n",encoding:Encoding::UTF_8}csv_string=CSV.generate(csv_config)do|csv|csv在Excel中打开时,特殊字符显示不正确:TextaTextbTextæTextøTextÃ¥知道如何确保正确编码吗? 最佳答案 如果Excel具有BOM,则它可以理解UTF-8CSV。可
如果我有这样的国际电话号码:0541754301我怎样才能格式化它来产生这样的东西:0541-754-301 最佳答案 您可以使用ActionView::Helpers::NumberHelper中的number_to_phone(number,options={})方法但是,文档指出此方法会将数字格式化为美国电话号码(例如(555)123-9876)。相反,您可以使用thispatch它增加了提供数字分组的能力::groupings-Specifiesalternategroupings(mustspecify3-elementa
我可以为每个验证本地化错误消息,但我如何为特定模型创建错误。普通语言环境看起来像这样:en:mongoid:errors:messages:taken:"Itisalreadytaken"但我想为user模型更改消息:en:mongoid:errors:messages:taken:"Itisalreadytaken"user:taken:"Itisalreadytaken.%{link_to'Rememberpassword',reset_password_path'}" 最佳答案 试试这个:en:mongoid:errors:m
我的应用程序在RoR中我有一个名为showsummary的操作/View,其中ID已传递到URL,并且Controller使用它来实例化@vendor,其中@vendor.name是公司的名称。我希望URL是showsummary/1/而不是在URL中包含/vendor-name。我该怎么做? 最佳答案 所有这些解决方案都使用find_by_name,这肯定需要在该列上有一个索引并且要求它们是唯一的。我们使用的一个更好的解决方案是在供应商名称前加上其ID,但牺牲了一点美观。这意味着您不必在名称列上有索引和/或要求唯一性。供应商.rb
我在带有slug的Rails4应用程序中使用friendly_id。现在我正在使用active_admingem.问题:当我单击来自事件管理员的Group资源的显示链接时,它抛出以下异常:ActiveRecord::RecordNotFoundat/admin/groups/username20-s-group-1我想,我需要重写一些active_admin默认函数吗? 最佳答案 有些情况下,当应用程序退出一些资源时,为了保持它的DRY有一个很好的解决方案,需要为整个应用程序编写几行代码-只需覆盖activeadmin的资源Cont