2016-06-27 19:10:25 +03:00

72 lines
1.8 KiB
Groovy

package by.prominence.translations
class TranslationsOverviewController {
def bundleService
def index() {
render view: 'index', model: [bundles: bundleService.getBundles()]
}
def show() {
if (!params.bundleName) {
redirect action: 'index'
return
}
Bundle bundle = bundleService.findBundleByName(params.bundleName as String)
if (!bundle) {
render view: 'index', model: [message: g.message(code: 'plugin.translations.error.bundleNotFound', args: [params.bundleName as String])]
return
}
render view: 'show', model: [bundle: bundle]
}
def edit() {
if (!params.bundleName) {
redirect action: 'index'
return
}
Bundle bundle = bundleService.findBundleByName(params.bundleName as String)
if (!bundle) {
render view: 'index', model: [message: g.message(code: 'plugin.translations.error.bundleNotFound', args: [params.bundleName as String])]
return
}
render view: 'edit', model: [bundle: bundle]
}
def saveFile() {
Bundle bundle = bundleService.findBundleByName(params.bundleName as String)
Language language = bundle.languages.find { Language lang ->
lang.languageTag = params.lang
}
params.each { String key, value ->
if (key.startsWith('translations.')) {
language.translations."${key}" = value
}
}
language.translations.each { key, value ->
language.languageFile.write("${key} = ${value}\n")
}
if (params.bundleName) {
redirect action: 'edit', model: [bundleName: params.bundleName]
return
}
redirect action: 'index'
}
}