小编Tom*_*Tom的帖子

如何避免在生成的URL中添加默认语言环境?

如果您按照I18N Rails指南进行操作,则所有生成的链接都包含locale参数(localhost/en/about,localhost/fr/about).这是因为我们使用该方法default_url_options始终添加Locale参数:

def default_url_options(options={})
  { :locale => I18n.locale }
end
Run Code Online (Sandbox Code Playgroud)

当语言环境未知或默认语言环境时,是否可以从生成的URL中删除语言环境参数?

我需要的 :

  • 地区未知: mysite/about
  • Locale en :( mysite/about而不是localhost/en/about)
  • 区域设置fr: mysite/fr/about

我试图只设置语言环境,如果它不是默认语言环境,但结果是生成的链接永远不会包含语言环境参数...

我尝试了很多像这样的东西

def default_url_options(options={})
  if I18n.locale == :fr
    { :locale => I18n.locale }
  else
    { :locale => nil }
  end
end
Run Code Online (Sandbox Code Playgroud)

整码:

ApplicationController.rb:

before_filter :set_locale
def set_locale
  I18n.locale = params[:locale]
end

def default_url_options(options={})
  { :locale => I18n.locale }
end
Run Code Online (Sandbox Code Playgroud)

的routes.rb

scope "(:locale)", :locale => /en|fr/ do
  match 'about'   => 'static_pages#about',   :via => …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails internationalization

16
推荐指数
2
解决办法
8072
查看次数

Vim映射以在可视模式下复制所有文本

我想在可视模式下映射ctrl + a来选择并复制当前缓冲区中的所有文本.

基本思想是执行:%y*(将所有缓冲区复制到剪贴板).因此,映射应该是:xmap:%y*(仅适用于可视模式的xmap)

但是,每当我运行此映射时,都会显示以下输出:

E492: Not an editor command: '<,'>%y*
Run Code Online (Sandbox Code Playgroud)

而且,我认为Vim是对的:-).在可视模式下,按":",使cmd-line显示那些令人惊讶的字符:

":'<,'>" 
Run Code Online (Sandbox Code Playgroud)

唯一相关的一块信息在哪里可以找到这种模式("<">)是一个:http://vimdoc.sourceforge.net/htmldoc/cmdline.html#v_:(并没有帮助我) .

问题:我做错了什么(配置......)?我的需求是否有另一个答案(将所有文本复制到剪贴板)?

我正在运行Vim 7.3,我只在我的vimrc中设置了nocompatible

谢谢你的帮助,汤姆

vim

2
推荐指数
1
解决办法
1155
查看次数

标签 统计

internationalization ×1

ruby-on-rails ×1

vim ×1