道喜技术日记 .^. 天天红玉世界

Rails Ruby MacOSX 。。。创新来自于刻苦的实践和勤奋的思考... www.hhtong.com


Rails2.2世界:国际化功能问与答(三)

Gudao Luo2008-11-30 at 22:27发表的

国际化功能问与答(三)
 

警告:在复制本博客代码时,空行存在中文空格,需要删除!!!
 

  • 国际化功能问与答(三):本地化翻译方法
    • 如何调用翻译函数?
      I18n.translate < key >
      如:
      I18n.translate :hello
      或者
      I18n.t :hello
    • 如何调用具有插值的翻译函数?
      I18n.translate < key >, < 插值 >
      如:
      I18n.translate :hello_with_name, :name=>”Hans”
    • 如何调用多元化的翻译函数?
      I18n.translate < key >, < 多元化变量 >
      如:
      I18n.translate :second_in_words, :count=>12
    • 如何调用具有命名空间的翻译函数?
      I18n.translate < 命名空间.key >, < 多元化变量 >
      如:
      I18n.translate “namespcae.second_in_words”, :count=>2
    • 如何调用时间对象的本地化函数?
      I18n.localize < 时间对象 >, :format=>< key >
      如:
      I18n.localize Time.now, :format=>:long
      或者
      I18n.l Time.now, :format=>:long
    • 如何调用日期对象的本地化函数?
      I18n.localize < 日期对象 >, :format=>< key >
      如:
      I18n.localize Date.parse(‘2008-11-29’)
    • 如何调用时间和日期名称的翻译函数?
      I18n.translate < 命名空间.key >
      如:
      I18n.translate(‘date.month_names’)
      I18n.translate(‘date.month_names’).last
如何使用本地化文件的实例方法
rails 03_i18n_demo && cd 03_i18n_demo
 
vi config/environment.rb
config.i18n.default_locale = :"zh-CN"
 
touch config/locales/zh-CN.yml
vi config/locales/zh-CN.yml
zh-CN:
hello: "世界,你好!"
 
hello_with_name: "{{name}},你好!"
 
second_in_words:
one: "一秒钟"
two: "两秒钟"
other: "{{count}}秒钟"
 
namespace:
second_in_words:
one: "一秒钟"
two: "两秒钟"
other: "{{count}}秒钟"
 
time:
formats:
default: "%Y年%b%d日 %A %H:%M:%S %Z"
short: "%b%d日 %H时%M分"
long: "%Y年%b%d日 %H时%M分%S秒"
am: "上午"
pm: "下午"
 
date:
formats:
default: "%Y年%m月%d日"
abbr_default: "%Y-%m-%d"
short: "%b%d日"
long: "%Y年%b%d日"
day_names: [星期天, 星期一, 星期二, 星期三, 星期四, 星期五, 星期六]
abbr_day_names: [日, 一, 二, 三, 四, 五, 六]
month_names: [~, 一月, 二月, 三月, 四月, 五月, 六月, 七月, 八月, 九月, 十月, 十一月, 十二月]
abbr_month_names: [~, 1月, 2月, 3月, 4月, 5月, 6月, 7月, 8月, 9月, 10月, 11月, 12月]
order: [ :year, :month, :day ]

    • 在图中的命令sc就是“ruby script/console”命令。
标记: Rails, Ruby, faq, i18n, use

Apple世界:文件chm的阅读器iChm

Gudao Luo2008-11-30 at 07:01发表的

文件chm的阅读器iChm
  • 说明
    • 针对Mac OSX上的文件chm阅读器:
      iChm
      Chmox
      Chamanix
      CHM Reader
    • 软件iChm是最新的,而软件Chmox是最最早的
    • 上面所示的图使用了软件iChm打开chm文件,但是当你打开该文件mootools_doc_cn_1.chm(链接在下面参考文献中)时,中间的内容会出现中文乱码。
    • 乱码原因:在这个软件中使用了两种文本编码UTF-8(中间文字)和GBK(目录文字,注意该文字在图中是乱码)。
    • 谁之过?创建chm文件的软件是否应该规定同一文件只能存在一种文本编码?软件iChm是否考虑到能够显示不同的文本编码?创建该文件的制作者应该注意在同一文件中要使用一种文本编码?你以为呢?
    • 调整文本编码:菜单 >> 显示 >> 文本编码 >> UTF-8 或者 GBK
  • iChm 安装方法:
    1. 下载文件:http://ichm.googlecode.com/files/iChm.1.4.0.zip
    2. 双击文件:iChm.1.4.0.zip
    3. 移动文件iChm.app到文件夹“应用软件”中
  • Chmox 安装方法:
    1. 下载软件:http://mesh.dl.sourceforge.net/sourceforge/chmox/Chmox-0.3.dmg
    2. 双击文件Chmox-0.3.dmg
    3. 移动文件Chmox.app到文件夹“应用软件”中
标记: apple, chm, ichm, mac, osx, reader

Cucumber实例世界:Cucumber基本概念实例(二)

Gudao Luo2008-11-29 at 20:17发表的

Cucumber基本概念实例(二)
说明
  • 除了括号<>的内容之外,在文件features/addition.feature



    文件features/step_definitons/calculator_steps.rb

    之间的陈述句要"基本"保持一致;

    如:

    features/addition.feature:“我已经在计算器里输入<6>”

    features/step_definitons/calculator_steps.rb:“我已经在计算器里输入<$n>”
  • 在括号<>中,一个是具体值:6,一个是变量$n。
  • 这个括号<>是我增加的,不是必须的,目的是要把问题说明清楚;
  • 括号<>是为了说明在其里面的内容是可以变化的值;
  • 陈述句是随意表达的,只要意思正确就可以了。
  • 我们可以把这种表述看作为一个“函数名称”。
  • 在陈述句之前的单词是该软件的中文关键词,必须如此。
  • 关键词之后的空格是我增加的,不是必须的,目的是要把问题说明清楚;
  • 在文件.feature中,Cucumber关键词对应于文件 *_steps.rb 的相应关键词

    如:

    features/addition.feature:“当”

    features/step_definitons/calculator_steps.rb:“When”
  • 文件.feature是*应该*是仅仅问题的描述
  • 文件 *_steps.rb 是对问题的描述具体实现
Cucumber工具重要的中英文关键词对照
"zh-CN":
Feature: 功能
Scenario: 场景
Given_scenario: 引用场景
Given: 假如
When: 当
Then: 那么
And: 而且
But: 但是
标记: Rails, Ruby, Testing, bdd, cucumber, sdd

Rails2.2世界:国际化功能问与答(二)

Gudao Luo2008-11-28 at 23:50发表的

国际化功能问与答(二)
  • 国际化功能问与答(二):用户定义本地化文件
1. 如何确定自己软件的本地化默认语言?
vi config/environment.rb
config.i18n.default_locale = :"zh-CN"
2. 如何确定自己软件的本地化默认文件路径?
vi config/environment.rb
config.i18n.load_path += Dir[File.join("#{RAILS_ROOT}/config/", 'locales', 'admin', '*.{rb,yml}')]
用户定义本地化文件的实例命令
rails 02_i18n_demo && cd 02_i18n_demo
 
vi config/environment.rb
# config.i18n.load_path << Dir[File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')]
# config.i18n.default_locale = :de
config.i18n.default_locale = :"zh-CN"
config.i18n.load_path += Dir[File.join("#{RAILS_ROOT}/config/", 'locales', 'admin', '*.{rb,yml}')]
 
mkdir config/locales/admin
 
vi config/locales/admin/zh-CN.yml
zh-CN:
# I18n.translate :hello
hello: "世界,你好!"
用户定义本地化文件的操作方法命令
localhost:demo gudao$ ./script/console
Loading development environment (Rails 2.2.2)
>> I18n.load_path
=> ["/Library/Ruby/Gems/1.8/gems/activesupport-2.2.2/lib/active_support/locale/en.yml",
"/Library/Ruby/Gems/1.8/gems/activerecord-2.2.2/lib/active_record/locale/en.yml",
"/Library/Ruby/Gems/1.8/gems/actionpack-2.2.2/lib/action_view/locale/en.yml",
"/Users/gudao/Documents/railsspace/open-projects/i18n/demo/config/locales/admin/en.yml",
"/Users/gudao/Documents/railsspace/open-projects/i18n/demo/config/locales/admin/zh-CN.yml"]
>> I18n.t :hello
=> "世界,你好!"
>> exit
标记: Rails, chinese, faq, i18n, rails22

Cucumber实例世界:Cucumber on Rails基本使用过程(一)

Gudao Luo2008-11-28 at 20:17发表的

Cucumber on Rails基本使用过程(一)
标记: Rails, Testing, bdd, cucumber, sdd

代码世界:对于数组的运算符“<<”和“+=”的差异

Gudao Luo2008-11-27 at 21:53发表的

对于数组的运算符“<<”
a = [1,2,3]
b = [4,5]
a << b
# 变量a结果为:[1,2,3,[4,5]]
对于整数(或者字符串等)的运算符“<<”
a = [1,2,3]
b = 4
a << b
# 变量a结果为:[1,2,3,4]
对于数组的运算符“+=”
a = [1,2,3]
b = [4,5]
a += b
# 变量a结果为:[1,2,3,4,5]
标记: Codes, Ruby, array, operator

Rails实例世界(No 3):关于Textile的可视化编辑插件textile_toolbar

Gudao Luo2008-11-27 at 11:23发表的

关于Textile的可视化编辑插件textile_toolbar

注:好像Firefox不能够访问上面图的链接,而使用浏览器Safari是可以的。
 
使用关于Textile的可视化插件textile_toolbar方法
rails textile_toolbar_demo && cd textile_toolbar_demo
 
ruby script/plugin install git://github.com/pelargir/textile_toolbar.git
rake textile_toolbar:install
 
ruby script/generate scaffold post title:string body:text published:boolean
 
vi app/views/posts/edit.html.erb
<%#= f.text_area :body %>
<%= f.textile_area :body, :rows => 5, :cols => 20 %>
 
vi app/views/layouts/posts.html.erb
<%= stylesheet_link_tag 'scaffold' %>
<%= javascript_include_tag :defaults %>
<%= javascript_include_tag "textile_toolbar.js" %>
 
rake db:migrate && rake db:fixtures:load
 
ruby script/server
 
# http://localhost:3000/posts/<post.id>/edit

代码世界:逆向循环语句

Gudao Luo2008-11-27 at 09:58发表的

正向循环语句
(1..5).each do |i|
puts i
end
逆向循环语句
5.downto(1) do |i|
puts i
end
  • 说明
    • 在下面资料的逆向循环语句中,do前面多了一个点。
  • 参考资料
    • http://www.railsrocket.com/articles/looping-backwards-in-ruby
标记: Codes, Ruby, loop, looping

Rails2.2世界:国际化功能问与答(一)

Gudao Luo2008-11-26 at 06:02发表的

国际化功能问与答(一)i18n
  • 国际化功能问与答(一):国际化(i18n)文件
    • 默认国际化文件在哪里?
      $RAILS_ROOT/config/locales
    • 使用什么样语言写国际化文件?
      YAML语言
      或者
      Ruby语言
    • 通常中国大陆中文使用什么国际化文件名称?
      zh-CN.yml
      或者
      zh-CN.rb
    • 默认国际化文件是定义了什么文字语言?
      English
    • 国际化文件最大特点是什么?
      以命名空间为基础结构
    • 一个国际化文件是否可以存在几种语言或者方言(zh-CN,zh-HK,zh-TW)呢?
      可以
    • 一种语言或者一种方言的国际化内容是否可以存放到几个国际化文件呢?
      可以
    • 一个国际化文件名称是否与文件内容相关呢?
      无关
标记: Rails, chinese, faq, i18n, rails22

Apple世界:终于有了合适的中文输入法Fun Input Toy

Gudao Luo2008-11-24 at 14:33发表的

终于找到了中文输入法Fun Input Toy
  • 安装说明
    • 下载: http://fit.coollittlethings.com/down.php?v=1.9.3_intel
    • 解压文件即双击该文件: FunInputToy_v1.9.3_intel.zip
    • 双击文件: FunInputToy_v1.9.3_intel.pkg
    • 自动重新启动计算机
    • 系统偏好设置 >> 多语言环境 >> 输入法菜单 >> 如上图所示
  • 致谢
    • 非常感谢 kyle 所提供的信息.
标记: apple, chinese, fut, input, mac, toy

软件世界:消息队列(Messaging Queue)与Ruby语言和Rails框架

Gudao Luo2008-11-23 at 10:46发表的

消息队列(Messaging Queue)与Ruby语言和Rails框架
  • 服务器与客户端概念
    • 在HTTP概念中,存在浏览器(Client)与网络服务器(Server);
    • 在Queue概念中,也存在客户端软件与服务器软件概念;
  • 参考资料
    • https://computing.llnl.gov/tutorials/parallel_comp/

苹果世界:最受欢迎的RSS阅读器NewsGator

Gudao Luo2008-11-22 at 22:18发表的

最受欢迎的RSS阅读器
  • 安装说明
    • 点击链接: http://tinyurl.com/6g8nd9
    • 把下载的文件NetNewsWire.app移到应用软件目录下
    • 点击该文件NetNewsWire.app,就可以启动该软件
    • 注册一下用户
    • 在所有的Mac OS X机器上,只要有该软件并且有相同的用户,相互间就可以同步本地RSS信息。
标记: atom, mac, osx, reader, rss, tools

网站推荐:Ruby和Rails书籍有多少?

Gudao Luo2008-11-21 at 21:55发表的

Ruby和Rails书籍知多少?

标记: books, website

Rails世界:Ruby软件包和Rails插件的使用趋势

Gudao Luo2008-11-20 at 06:05发表的

免费无限存放图片在slide.com!免费无限存放图片在slide.com!
标记: Rails, Ruby, gem, gems, plugins, trends

Rails实例世界(No 2):很有前途的JavaScript框架Mootools

Gudao Luo2008-11-19 at 08:30发表的

很有前途的JavaScript框架Mootools On Rails
使用Mootools框架的基本方法
rails mootools_demo && cd mootools_demo
 
git clone git://github.com/pointcom/mootools-on-rails.git vendor/plugins/mootools-on-rails
 
rake mootools_on_rails:install
 
ruby script/generate scaffold post title:string body:text published:boolean
 
vi config/routes.rb
ActionController::Routing::Routes.draw do |map|
MootoolsOnRails.routes
 
vi app/views/layouts/posts.html.erb
<%= stylesheet_link_tag 'scaffold' %>
<%= javascript_include_tag :mootools %>
 
rake db:migrate
 
vi app/views/posts/index.html.erb
<% add_event('link', 'click') do |page|
page.alert('coucou div 2')
end %> <%= content_tag(:a, "Click My Link", :id => 'link') %>
 
ruby script/server

苹果工具世界: 文件rar的压缩工具 UnRarX

Gudao Luo2008-11-18 at 03:33发表的

文件rar的压缩工具 UnRarX
标记: mac, mactools, rar, tools

技术图书世界: 免费的电子图书"Ruby要点(Essential Ruby)"

Gudao Luo2008-11-17 at 15:36发表的

Ruby重点摘要(Essential Ruby)

标记: Ruby, ebooks

Rails实例世界(No 1):可视化路由工具vasco

Gudao Luo2008-11-16 at 06:49发表的

可视化路由工具vasco

  • 安装前提条件:
    • ruby version 1.8.6
    • gem version 1.3.1
    • rails version 2.1.2
    • git version 1.6.0.1
使用可视化理由工具vasco基本方法
rails demo_vasco && cd demo_vasco
 
ruby script/plugin install git://github.com/relevance/vasco.git
或者
cd vendor/plugins/ && git clone git://github.com/relevance/vasco.git && cd ../..
 
ruby script/generate scaffold post title:string body:text published:boolean
 
rake db:migrate
 
rake vasco:explore
 
ruby script/server
 
http://localhost:3000/vasco
  • 说明
    • 在Mac OS X上使用上面所说的方法一切正常
    • 在Debian Sarge 3.1 Server上使用上面所说的方法,在使用命令“rake vasco:explore”时,就会出现问题。
    • 在使用Mongrel服务器可以正常访问
    • 在使用Thin服务器可以访问vasco时,会出现下面错误:
      No route matches ”/vasco” with {:method=>:get}

博客世界:Rails神话(The Rails Myths)

Gudao Luo2008-11-15 at 07:59发表的

标记: Myths, Rails, blogs

网站推荐:Ruby & Rails 外文精华翻译站

Gudao Luo2008-11-15 at 06:41发表的

Ruby & Rails 外文精华翻译站

软件开发工具:在Debian/Ubuntu上安装版本控制工具Git

Gudao Luo2008-11-14 at 05:00发表的

在Debian/Ubuntu上安装版本控制工具Git
cd /usr/local/src
wget http://kernel.org/pub/software/scm/git/git-1.6.3.3.tar.gz
tar zxvf git-1.6.3.3.tar.gz
cd git-1.6.3.3
./configure
make && make install
cd /usr/local/src
rm -fr /usr/local/src/git-1.6.3.3.tar.gz

Apple世界:苹果电脑朗读英文文本

Gudao Luo2008-11-12 at 13:58发表的

使用苹果电脑朗读英文文章
  • 设置方法
    1. 在桌面的程序栏中,打开“系统偏好设置”
    2. 在打开了的窗口中,点击“语音”
    3. 选择如上图的设置,“按下按钮时朗读所选文本”
    4. 点击按钮“设置键”,输入一个任意组合键,如“Option+A”
  • 使用方法
    1. 在浏览器中,选择需要朗读的英文内容
    2. 使用组合键“Option+A”,就会朗读该英文内容
  • 说明
    • 可惜朗读中文内容功能好像没有。

代码世界:开源软件Redmin版本0.7.3的代码问题

Gudao Luo2008-11-11 at 13:54发表的

免费无限存放图片在slide.com!
  • 问题说明
    • 创建一个项目
    • 再创建新自己的跟踪标签,注意顺序。
    • 问题出现了,在项目创建项目新的问题时,自己所创建的跟踪标签并没有出现。
  • 解决办法
    • 这个问题的原因是软件代码把跟踪标签依赖于项目。
    • 代码改写如下面代码所示。第二行代码是源代码,而第三行代码是新增加的代码。
    • 所有@project.trackers及其类似的代码都改写Tracker.all。
文件app/views/issues/_form.rhtml的部分代码
<% if @issue.new_record? %>
<p><%#= f.select :tracker_id, @project.trackers.collect {|t| [t.name, t.id]}, :required => true %>
<%= f.select :tracker_id, Tracker.all.collect {|t| [t.name, t.id]}, :required => true %></p>

网站推荐:获取隐藏的flv文件连接

Gudao Luo2008-11-10 at 10:17发表的

获取隐藏的flv文件连接
标记: download, flv, website

开发工具世界:在Mac OSX上如何安装7-zip

Gudao Luo2008-11-08 at 09:46发表的

免费无限存放图片在slide.com!

利用port方法安装7zip软件命令
sudo port install p7zip
使用7zip软件命令
# 获取7zip帮助命令
7za
# 解压7z文件命令实例
7za e archive-file.7z
使用Macports的简单说明
# 如何获取Macports的帮助信息
sudo port help
# 如何查看在本机上已经通过Macports所安装的软件
sudo port installed
# 如何获取通过Macports可安装的软件清单
sudo port list
标记: 7za, install, mac, osx, zip

Apple世界:Mac OS X浏览器知道多少?

Gudao Luo2008-11-07 at 08:46发表的

免费无限存放图片在slide.com!
标记: Browser, OS, apple, camino, mac, macos

Apple世界: 在Mac OS X上安装网络文件下载工具wget

Gudao Luo2008-11-06 at 14:56发表的

免费无限存放图片在slide.com!
  • 安装说明
    • 下载:wget http://tinyurl.com/5odt4o 。
    • 解压: 双击文件wget.zip
    • 进入该解压目录,可以看到文件:wget,wgetrc和wget.1 。
    • 设置环境变量“:/usr/local/bin”,具体方法参考: 如何设置环境变量 MacOSX on Leopard
    • 执行下面命令
安装命令
sudo cp wget /usr/local/bin/.
sudo cp wget.1 /usr/local/man/man1/.
sudo cp wgetrc /usr/local/etc/.
验证方法
localhost:wget alps$ wget
wget: missing URL
Usage: wget [OPTION]... [URL]...
  
Try `wget —help' for more options.
  • 说明
    • 上面是使用可执行文件的安装方法,如果想从源代码开始安装它的话,那么请看下面参考文献的连接。
标记: OS, mac, osx, wget

图书世界:免费的Git使用手册

Gudao Luo2008-11-03 at 12:02发表的

免费的Git使用手册
标记: Version, control, ebook, git

Apple世界:SQLite数据库可视化工具

Gudao Luo2008-11-02 at 21:43发表的

SQLite数据库可视化工具
  • 相关连接

数据库世界:下一代数据库储存系统CouchDB

Gudao Luo2008-11-01 at 17:44发表的

免费无限存放图片在slide.com!
  • 说明
    • CouchDB能否与关系数据库抗衡?
    • CouchDB让我们了解数据储存的新概念。
    • Google也使用类似的数据库BigTable
    • 从数据记录角度看,CouchDB以文档的多维方式储存数据,而关系数据库是以表的二维方式。
    • 从数据历史角度看,CouchDB以文档的多层方式储存数据,而关系数据库是单层的。
    • CouchDB可以REST方式被访问,而关系数据库呢?
    • CouchDB完成程序与数据的更少耦合,实现真正意义数据库数据的分布性。
    • Rails创始人已经开始注意到CouchDB数据库的发展趋势,参考资料:中文英文 ,中文版本有些重要信息没有翻译。

“Its interesting to see that recently things like CouchDB or BigTable, and other implementations treat the database as a big hash. Or implement a big hash as a database are popping up and that’s very interesting.”—-DHH

  • CouchDB on Rails何时到位?
  • 值得好好学习的数据库系统!