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' } }