== I18n 多國語系
* 下載翻譯的詞彙 http://github.com/svenfuchs/rails-i18n/tree/master/rails/locale/ 到 config/locale/ 下, 為了與Extjs的locale一致,將zh-TW和zh-CN改為zh_TW和zh_CN.
* 修改 /config/application.rb 的 config.i18n.default_locale = "zh_TW" 可以修改預設的語系.
* 在 app/views/layouts/application.html.erb 加入:
<%= javascript_include_tag "/extjs/src/locale/ext-lang-#{I18n.default_locale}" %>
== 使用方法
I18n.t('netzke.basepack.grid_panel.actions.add', :default => "Add")
可以直接使用 t 方法
t("text.login_successful")
翻譯關鍵字可以用字串或 Symbol,也可以加上 Scope,例如:
t("label.login")
t(:login, :scope => :label )
== 修改 yml 設定(冒號後面要有空格)
zh_TW
netzke:
basepack:
generic:
confirm: "确认"
are_you_sure: "你确认吗?"
grid_panel:
actions:
add: "新增"
edit: "修改"
del: "刪除"
apply: "保存"
add_in_form: "新增(form)"
edit_in_form: "修改(form)"
search: "搜索"
deleted_n_records: "已刪除 %{n} 記錄"
cannot_delete: "您没有权限删除数据"
label:
remember_me: "记注密码"
login: "用户"
password: "密码"
button:
register: "注册"
text:
welcome_login: "欢迎您登录"
login_successful: "登录成功!"
logout_successful: "登出成功!"
== 寻找未使用的翻译
* See all the missing I18n translations
http://github.com/balinterdi/missing_t
* finding missing and unused translations
https://github.com/tkadauke/i18n_tools
== I18n ActiveRecord backend
https://github.com/svenfuchs/i18n-active_record
load I18n::Backend::Simple (yaml) to I18n::Backend::ActiveRecord::Translation table
https://github.com/tb/i18n_sync_simple_to_active_record
== Magic i18n "columns" for Rails models
https://github.com/jjbuckley/translatable_attributes
== 讓使用者可以切換多語系
使用Phusion Passenger + nginx作web服務, 必須在 application_controller.rb 中加入:
# For nginx:
before_filter :set_locale
def set_locale
#if params[:locale] && ["en", "zh-TW", "zh-CN"].include?( params[:locale] )
session[:locale] = params[:locale] if params[:locale]
#end
I18n.locale = session[:locale] || I18n.default_locale
end
def self.default_url_options(options={})
{:locale => I18n.locale}
end
在 View 中可以這樣做:
link_to "英文版", :controller => controller.controller_name, :action => controller.action_name, :locale => "en"
config/routes.rb
scope "(:locale)", :locale => /en|cn/ do
resources :books
end
參考:
https://github.com/warrenli/kowloon
係一個網站應用程式,以香港嘅繁體中文為預設語言,可以轉換為英文或設定其他語言。
== Rails i18n for javascript
https://github.com/giniedp/j18n
== 時區 TimeZone
首先,資料庫裡面的時間一定都是儲存 UTC 時間。而 Rails 提供的機制是讓你從資料庫拿資料時,自動幫你轉換時區。例如,要設定台北 +8 時區:
首先設定 config/application.rb 中預設時區為 config.time_zone = “Taipei”,如此 ActiveRecord 便會幫你自動轉換時區,也就是拿出來時 +8,存回去時 -8
== 如何根據使用者切換時區?
首先,你必須找個地方儲存不同使用者的時區,例如 User model 有一個欄位叫做 time_zone:string。然後在編輯設定的地方,可以讓使用者自己選擇時區:
<%= time_zone_select 'user','time_zone' %>
接著在 application_controller.rb 中加入:
before_filter :set_timezone
def set_timezone
if logged_in? && current_user.time_zone
Time.zone = current_user.time_zone
end
end
== Unicode 處理
在 Ruby 1.8 的字串其實只是 byte 的集合,如果你需要對 UTF-8 字串做一些函式操作,例如計算字數或字串替換,Rails 提供了 mb_chars 來包裝以獲得正確的結果,例如:
"中文".size # 6
"中文".mb_chars.size # 2
詳細的 API 文件請參考 http://api.rubyonrails.org/classes/ActiveSupport/Multibyte/Chars.html
如果你使用 Ruby 1.9,就不需要使用 mb_chars 了。Ruby 1.9 支援各種不同的 Encoding。
== Iconv
如果你需要在不同語系中處理,例如 Big5,那個 Ruby 的內建函式庫 Iconv 可以幫你處理轉換。
請參考 API 文件 http://ruby-doc.org/stdlib/libdoc/iconv/rdoc/index.html
== i18n API
http://guides.rubyonrails.org/i18n.html
== I18n Backends
http://asciicasts.com/episodes/256-i18n-backends
http://railscasts.com/episodes/256-i18n-backends
MongoDB backend implementation for I18n gem.
https://github.com/aulizko/mongo-i18n
http://ulizko.com/posts/408/
分享到:
相关推荐
- **I18n Support**:增强了国际化支持,使得应用可以更容易地适应不同的语言和文化需求。 ### 《The Rails Way》内容概述 《The Rails Way》这本书深入探讨了Rails的各个方面,从基础到高级主题都有覆盖,适合...
内容概要:本文详细介绍了利用FLAC3D进行隧道台阶法施工模拟的方法和技术细节。首先解释了隧道台阶法施工的基本流程,重点在于开挖命令的应用,如'zone cmodel assign'和'zone remove'用于改变区域本构模型并执行开挖操作。接着阐述了支护结构的设置方法,包括超前加固体、初衬、二衬、锚杆和锁脚锚杆的具体配置方式。此外,还讲解了如何通过'mesh'命令直接在FLAC3D中生成符合实际工程需求的网格模型。最后展示了模拟后的围岩体位移云图和应力云图,验证了计算结果的有效性,强调了这些数据对优化施工方案的重要性。 适合人群:从事岩土工程、隧道工程及相关领域的工程师和技术人员。 使用场景及目标:适用于需要进行隧道施工模拟的专业人士,旨在提升他们对FLAC3D的理解和应用能力,确保隧道施工的安全性和高效性。 其他说明:文中提供的实例和命令操作均基于真实项目经验,有助于读者更好地理解和掌握FLAC3D的实际应用技巧。
内容概要:本文介绍了纤维骨料细观尺度混凝土模型的设计与应用,重点在于如何通过控制骨料尺寸和体积率,在不同有限元软件(如Abaqus、Ansys、Ls-Dyna、Flac3d)中进行有效的四面体网格划分和六面体网格投影。文中提供了生成随机骨料位置和直径的Python代码片段,并详细解释了网格划分过程中需要注意的技术细节,如碰撞检测、网格转换公式以及材料属性设置。此外,还讨论了模型验证的方法及其在实际工程项目中的应用价值。 适合人群:从事土木工程、材料科学领域的研究人员和技术人员,尤其是那些需要利用有限元方法进行混凝土结构分析的专业人士。 使用场景及目标:①帮助工程师更好地理解和预测纤维混凝土的行为特性;②为实际工程项目提供理论支持和技术指导,从而优化纤维混凝土的应用;③提高仿真精度,减少实验成本和时间。 其他说明:文中提到的一些具体操作步骤和技术细节对于初学者来说可能具有一定挑战性,建议读者在实践中逐步掌握相关技能并积累经验。同时,正确设置物理量单位非常重要,错误的单位可能导致计算结果严重偏离预期。
嵌入式八股文面试题库资料知识宝典-c++个人笔记总结.zip
内容概要:本文详细介绍了西门子S7-1200 PLC在工业自动化领域的应用,重点讲解了其模块、板卡和通讯方式。首先概述了PLC模块和板卡作为基本单元的作用,接着深入探讨了支持的多种通讯协议,包括Modbus-RTU、S7通讯、Modbus-TCP和TCP/IP等。每种协议都配有具体的代码分析和调试方法。最后,介绍了博途V16编程软件的使用体验,强调了其对S7-1200 PLC编程的支持。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对西门子S7-1200 PLC有初步了解或希望深入了解的人群。 使用场景及目标:适用于需要掌握PLC模块化设计、不同通讯协议的应用场景,旨在帮助读者理解PLC的工作原理,提高编程和调试能力,从而更好地应用于实际项目中。 其他说明:文中提供的实例和代码分析有助于读者快速上手,同时推荐使用博途V16及以上版本的编程软件进行实践操作。
内容概要:本文介绍了Comsol仿真软件在等离子体空气反应领域的应用,重点探讨了其无模型反应框架的功能。该框架能模拟超过40种气体(如氧气、氮气、氦气)的详细反应过程,提供碰撞截面数据、迁移率扩散系数、速率系数和汤森系数的查询与求解功能,并通过bosig+模块实现自定义反应路径的选择。此外,文中强调了代码分析与实践应用的重要性,以及这些功能如何提升等离子体反应研究的效率和准确性。 适合人群:从事等离子体物理、化学反应动力学及相关领域研究的专业人士和技术人员。 使用场景及目标:适用于需要精确模拟复杂等离子体环境中气体反应的研究项目,旨在提高对等离子体反应机制的理解,优化实验设计,预测反应行为。 其他说明:Comsol仿真软件凭借其强大的计算能力,在等离子体研究中扮演着重要角色。随着技术的发展,该框架有望进一步推动相关领域的创新和发展。
嵌入式八股文面试题库资料知识宝典-同方万维硬件测试工程师.zip
嵌入式八股文面试题库资料知识宝典-c,c++笔试.zip
少儿编程scratch项目源代码文件案例素材-激光连接.zip
嵌入式八股文面试题库资料知识宝典-奔图电子-软件笔试试题v1.1(C,C++工程师).zip
嵌入式八股文面试题库资料知识宝典-国科环宇有限公司.zip
基于LDA主题模型对AIGC的影响力分析.pdf
可以自己添加应用和功能版,在/opt/upt/apps/下面添加ubin目录和ulib目录,把你想用的程序添加到ubin,支持模块添加到ulib中,就可以运行,具体刷机操作,请看《》
内容概要:本文探讨了遗传算法在车辆路径优化问题(VRP)中的应用及其改进,特别是在冷链物流、软时间窗和多配送中心场景下的路径优化策略。文中介绍了遗传算法通过模拟自然界进化过程来寻找最优路径解决方案的能力,并详细讨论了其在冷链物流中的重要性,即确保产品运输过程中的温度稳定和时效性。此外,还提到了软时间窗概念的应用,以平衡客户满意度和运输成本。在多配送中心场景下,遗传算法能有效处理复杂路径规划问题,如外卖配送路径优化和充电桩电车车辆路径优化。除了遗传算法,蚁群算法、模拟退火算法和粒子群算法也在不同类型的路径优化问题上得到广泛应用,如旅行商问题(TSP)、容量约束的车辆路径规划(CVRP)和带距离、容量和时间窗约束的车辆路径规划(VRPTW)。最后,文章强调了遗传算法改进的研究方向,旨在提高运算速度和精度,从而提升物流效率和客户满意度。 适合人群:从事物流与运输领域的研究人员和技术人员,对车辆路径优化感兴趣的学者和从业者。 使用场景及目标:适用于冷链物流、外卖配送、充电桩电车等多种实际应用场景,旨在优化路径规划,降低运输成本,提高客户满意度。 其他说明:本文不仅介绍了现有算法的应用情况,还指出了未来可能的研究方向和发展趋势。
内容概要:本文详细介绍了物流领域的车辆路径优化(VRP)及其扩展问题——带时间窗的车辆路径优化(VRPTW),并探讨了冷链物流车辆路径优化(考虑充电桩需求)。文中通过MATLAB实现了遗传算法解决这些问题的具体步骤,包括参数设置、种群初始化、适应度函数计算、遗传算法循环等。此外,还讨论了多配送中心场景下的路径优化挑战和其他优化算法(如蚁群算法、粒子群算法、节约算法和模拟退火算法)的应用。最后,针对冷链物流和电动汽车路径优化提出了具体的解决方案和技术细节。 适合人群:从事物流管理、运筹学、算法设计的研究人员和工程师,尤其是对MATLAB有一定基础的技术人员。 使用场景及目标:适用于需要优化物流配送路径的企业和个人,旨在提高配送效率、降低成本、提升服务质量。具体应用场景包括但不限于城市配送、冷链运输、电动车辆调度等。 其他说明:文中提供了完整的MATLAB代码示例,帮助读者更好地理解和实践各种优化算法。同时,强调了不同算法的特点和适用条件,便于读者根据实际情况选择最合适的算法。
嵌入式八股文面试题库资料知识宝典-文思创新面试题2.zip
嵌入式八股文面试题库资料知识宝典-网络编程.zip
少儿编程scratch项目源代码文件案例素材-火柴人防御.zip
AI数字形象制作口播视频
少儿编程scratch项目源代码文件案例素材-绝地武士冲刺.zip