它已經很多年以來我第一次來到這個問題,因爲我有完全相同的問題。問題並沒有變小,我比以往更加沮喪。
這是一個實驗性項目,它掛鉤到翻譯查找並增加在Redis的翻譯鑰匙計數器:
https://github.com/paladinsoftware/i18n-counter
的想法是,你可以拉的統計和比較。 (WIP的時刻,我很樂意幫助OFC)
你可能會問:「不會的查找放慢」
而你是對的,當然,但開銷幾乎無法察覺,看看這個基準。
require 'benchmark'
n = 100000
Benchmark.bm do |x|
x.report { ENV['ENABLE_I18N_COUNTER'] = 'true'; n.times do ; I18n.translate('application.contract_not_available.header'); end }
x.report { ENV['ENABLE_I18N_COUNTER'] = 'false'; n.times do ; I18n.translate('application.contract_not_available.header'); end }
end
---------------------------------------------
| Benchmark | Seconds | Sec pr translation |
|------------| --------- | ------------------ |
| with redis | 48.280000 | 0.0004828 |
| without | 9.010000 | 0.0000901 |
---------------------------------------------
開銷約爲3 ms pr查找。它歸結爲每頁/請求所做的查找次數。
來源
2017-09-28 14:50:18
oma
我不明白你的意思。我正在談論文件中的行。你在談論數據庫行嗎? – 2011-12-28 20:57:02
我沒有任何使用rails的經驗,但我知道的大多數i18n解決方案都有導出所有可翻譯字符串的方法。導出所有可翻譯的字符串,然後循環遍歷所有字符串,並檢查哪些不再使用(查看您的導出)。 – 2011-12-28 21:00:33
我不問如何比較兩個本地化文件;我在問如何檢查應用程序代碼使用哪些本地化密鑰。 – 2011-12-28 21:14:56