mirror of
https://github.com/zero-peak/ZeroOmega.git
synced 2025-02-02 02:58:13 -05:00
Add grunt task for compiling gettext PO files for Chromium Extensions.
This commit is contained in:
parent
f68b0ae3d3
commit
cc526b819f
@ -1027,8 +1027,8 @@ msgstr "SwitchyOmega:: $PROFILE$"
|
|||||||
|
|
||||||
msgid "browserAction_titleWithResult"
|
msgid "browserAction_titleWithResult"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SwitchyOmega:: $PROFILE$\n"
|
"SwitchyOmega:: $1:PROFILE$\n"
|
||||||
"$DETAILS$"
|
"$3:DETAILS$"
|
||||||
|
|
||||||
msgid "browserAction_titleNewerOptions"
|
msgid "browserAction_titleNewerOptions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -22,7 +22,7 @@ msgid "manifest_app_description"
|
|||||||
msgstr "Manage and switch between multiple proxies quickly & easily."
|
msgstr "Manage and switch between multiple proxies quickly & easily."
|
||||||
|
|
||||||
msgid "manifest_icon_default_title"
|
msgid "manifest_icon_default_title"
|
||||||
msgstr "Loading..."
|
msgstr "Loading…"
|
||||||
|
|
||||||
msgid "upgrade_profile_auto"
|
msgid "upgrade_profile_auto"
|
||||||
msgstr "Auto Switch"
|
msgstr "Auto Switch"
|
||||||
@ -44,7 +44,7 @@ msgstr ""
|
|||||||
"code> are specially treated only in Host wildcard conditions.<br>Example: <"
|
"code> are specially treated only in Host wildcard conditions.<br>Example: <"
|
||||||
"code>*.example.com</code> will match www.example.com <b>AND example.com as "
|
"code>*.example.com</code> will match www.example.com <b>AND example.com as "
|
||||||
"well.</b><br>To match subdomains <b>only</b>, use <b>two</b> asterisks like <"
|
"well.</b><br>To match subdomains <b>only</b>, use <b>two</b> asterisks like <"
|
||||||
"code>**.example.com</code>"
|
"code>**.example.com</code>."
|
||||||
|
|
||||||
msgid "condition_HostRegexCondition"
|
msgid "condition_HostRegexCondition"
|
||||||
msgstr "Host regex"
|
msgstr "Host regex"
|
||||||
@ -190,7 +190,7 @@ msgid "options_tab_importExport"
|
|||||||
msgstr "Import/Export"
|
msgstr "Import/Export"
|
||||||
|
|
||||||
msgid "options_newProfile"
|
msgid "options_newProfile"
|
||||||
msgstr "New profile..."
|
msgstr "New profile…"
|
||||||
|
|
||||||
msgid "options_apply"
|
msgid "options_apply"
|
||||||
msgstr "Apply changes"
|
msgstr "Apply changes"
|
||||||
@ -491,7 +491,7 @@ msgid "options_bypassListHelp"
|
|||||||
msgstr "Servers for which you do not want to use any proxy: (One server on each line.)"
|
msgstr "Servers for which you do not want to use any proxy: (One server on each line.)"
|
||||||
|
|
||||||
msgid "options_bypassListHelpLinkText"
|
msgid "options_bypassListHelpLinkText"
|
||||||
msgstr "(Wildcards and more available...)"
|
msgstr "(Wildcards and more available…)"
|
||||||
|
|
||||||
msgid "options_group_pacUrl"
|
msgid "options_group_pacUrl"
|
||||||
msgstr "PAC URL"
|
msgstr "PAC URL"
|
||||||
@ -1016,8 +1016,8 @@ msgstr "SwitchyOmega:: $PROFILE$"
|
|||||||
|
|
||||||
msgid "browserAction_titleWithResult"
|
msgid "browserAction_titleWithResult"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SwitchyOmega:: $PROFILE$\n"
|
"SwitchyOmega:: $1:PROFILE$\n"
|
||||||
"$DETAILS$"
|
"$3:DETAILS$"
|
||||||
|
|
||||||
msgid "browserAction_titleNewerOptions"
|
msgid "browserAction_titleNewerOptions"
|
||||||
msgstr "ERROR: A newer version of SwitchOmega is required to load the stored options."
|
msgstr "ERROR: A newer version of SwitchOmega is required to load the stored options."
|
||||||
|
@ -1032,8 +1032,8 @@ msgstr "SwitchyOmega:: $PROFILE$"
|
|||||||
|
|
||||||
msgid "browserAction_titleWithResult"
|
msgid "browserAction_titleWithResult"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SwitchyOmega:: $PROFILE$\n"
|
"SwitchyOmega:: $1:PROFILE$\n"
|
||||||
"$DETAILS$"
|
"$3:DETAILS$"
|
||||||
|
|
||||||
msgid "browserAction_titleNewerOptions"
|
msgid "browserAction_titleNewerOptions"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -897,8 +897,8 @@ msgstr "SwitchyOmega:: $PROFILE$"
|
|||||||
|
|
||||||
msgid "browserAction_titleWithResult"
|
msgid "browserAction_titleWithResult"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SwitchyOmega:: $PROFILE$\n"
|
"SwitchyOmega:: $1:PROFILE$\n"
|
||||||
"$DETAILS$"
|
"$3:DETAILS$"
|
||||||
|
|
||||||
msgid "browserAction_titleNewerOptions"
|
msgid "browserAction_titleNewerOptions"
|
||||||
msgstr "错误:需要新版本的SwitchyOmega才能加载当前选项。"
|
msgstr "错误:需要新版本的SwitchyOmega才能加载当前选项。"
|
||||||
|
@ -897,8 +897,8 @@ msgstr "SwitchyOmega:: $PROFILE$"
|
|||||||
|
|
||||||
msgid "browserAction_titleWithResult"
|
msgid "browserAction_titleWithResult"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"SwitchyOmega:: $PROFILE$\n"
|
"SwitchyOmega:: $1:PROFILE$\n"
|
||||||
"$DETAILS$"
|
"$3:DETAILS$"
|
||||||
|
|
||||||
msgid "browserAction_titleNewerOptions"
|
msgid "browserAction_titleNewerOptions"
|
||||||
msgstr "錯誤:需要新版本的SwitchyOmega才能載入當前選項。"
|
msgstr "錯誤:需要新版本的SwitchyOmega才能載入當前選項。"
|
||||||
|
@ -1 +1,3 @@
|
|||||||
module.exports = require('load-grunt-config')
|
module.exports = (grunt) ->
|
||||||
|
require('load-grunt-config')(grunt)
|
||||||
|
require('./grunt-po2crx')(grunt)
|
||||||
|
41
omega-target-chromium-extension/grunt-po2crx.coffee
Normal file
41
omega-target-chromium-extension/grunt-po2crx.coffee
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
module.exports = (grunt) ->
|
||||||
|
taskDesc = 'Convert gettext PO files to Chromium Extension messages format.'
|
||||||
|
# coffeelint: disable=missing_fat_arrows
|
||||||
|
grunt.registerMultiTask 'po2crx', taskDesc, ->
|
||||||
|
for f in this.files
|
||||||
|
result = {}
|
||||||
|
for src in f.src
|
||||||
|
json = require('po2json').parseFileSync(src)
|
||||||
|
for own key, value of json when key
|
||||||
|
message = value[1]
|
||||||
|
refs = []
|
||||||
|
matchCount = 0
|
||||||
|
message = message.replace /\$(\d+:)?(\w+)\$/g, (_, order, ref) ->
|
||||||
|
matchCount++
|
||||||
|
if order
|
||||||
|
order = parseInt(order)
|
||||||
|
else
|
||||||
|
order = matchCount
|
||||||
|
### TODO(catus): Shall we enable this warning?
|
||||||
|
if matchCount > 1
|
||||||
|
grunt.log.writeln("In this message: #{key}=#{message}")
|
||||||
|
grunt.log.writeln(
|
||||||
|
'Order not specified for two or more refs in same message.')
|
||||||
|
###
|
||||||
|
refs[order] = ref
|
||||||
|
return '$' + ref + '$'
|
||||||
|
|
||||||
|
if not matchCount
|
||||||
|
placeholders = undefined
|
||||||
|
else
|
||||||
|
placeholders = {}
|
||||||
|
for i in [0...refs.length]
|
||||||
|
placeholder = refs[i] ? ('_unused_' + i)
|
||||||
|
placeholders[placeholder] = {content: '$' + i}
|
||||||
|
result[key] =
|
||||||
|
message: message
|
||||||
|
placeholders: placeholders
|
||||||
|
|
||||||
|
grunt.file.write(f.dest, JSON.stringify(result))
|
||||||
|
grunt.log.writeln("File \"#{f.dest}\" created.")
|
||||||
|
# coffeelint: enable=missing_fat_arrows
|
@ -4,6 +4,7 @@ module.exports =
|
|||||||
'browserify'
|
'browserify'
|
||||||
'coffee'
|
'coffee'
|
||||||
'copy'
|
'copy'
|
||||||
|
'po2crx'
|
||||||
]
|
]
|
||||||
test: ['mochaTest']
|
test: ['mochaTest']
|
||||||
release: ['default', 'compress']
|
release: ['default', 'compress']
|
||||||
|
11
omega-target-chromium-extension/grunt/po2crx.coffee
Normal file
11
omega-target-chromium-extension/grunt/po2crx.coffee
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
module.exports =
|
||||||
|
locales:
|
||||||
|
files:
|
||||||
|
'build/_locales/en/messages.json':
|
||||||
|
'../omega-locales/en_US/LC_MESSAGES/omega-web.po'
|
||||||
|
'build/_locales/zh/messages.json':
|
||||||
|
'../omega-locales/zh_CN/LC_MESSAGES/omega-web.po'
|
||||||
|
'build/_locales/zh_CN/messages.json':
|
||||||
|
'../omega-locales/zh_CN/LC_MESSAGES/omega-web.po'
|
||||||
|
'build/_locales/zh_TW/messages.json':
|
||||||
|
'../omega-locales/zh_TW/LC_MESSAGES/omega-web.po'
|
@ -5,12 +5,12 @@ module.exports =
|
|||||||
files:
|
files:
|
||||||
'grunt/*'
|
'grunt/*'
|
||||||
tasks: ['coffeelint:tasks', 'default']
|
tasks: ['coffeelint:tasks', 'default']
|
||||||
|
po2crx_locales:
|
||||||
|
files: ['../omega-locales/**/*']
|
||||||
|
tasks: ['po2crx:locales']
|
||||||
copy_web:
|
copy_web:
|
||||||
files: ['node_modules/omega-web/build/**/*']
|
files: ['node_modules/omega-web/build/**/*']
|
||||||
tasks: ['copy:web']
|
tasks: ['copy:web']
|
||||||
copy_i18n:
|
|
||||||
files: ['../omega-i18n/**/*']
|
|
||||||
tasks: ['copy:i18n', 'copy:i18n_zh']
|
|
||||||
copy_target:
|
copy_target:
|
||||||
files: ['node_modules/omega-target/omega_target.min.js']
|
files: ['node_modules/omega-target/omega_target.min.js']
|
||||||
tasks: ['copy:target']
|
tasks: ['copy:target']
|
||||||
|
@ -16,7 +16,8 @@
|
|||||||
"grunt-contrib-watch": "^0.6.1",
|
"grunt-contrib-watch": "^0.6.1",
|
||||||
"grunt-mocha-test": "~0.11.0",
|
"grunt-mocha-test": "~0.11.0",
|
||||||
"load-grunt-config": "^0.13.1",
|
"load-grunt-config": "^0.13.1",
|
||||||
"minifyify": "^4.1.1"
|
"minifyify": "^4.1.1",
|
||||||
|
"po2json": "^0.3.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"omega-target": "../omega-target",
|
"omega-target": "../omega-target",
|
||||||
|
Loading…
Reference in New Issue
Block a user