Skip to content

Commit

Permalink
#1839 Add support for Chinese locale (#1851)
Browse files Browse the repository at this point in the history
* #1839 Add support for Chinese locale

* #1839 Added support for Chinese to React pages and fixed bug with importing localization messages that use UTF-8 characters

* #1839 Added partial translation to Chinese

* #1839 Flushed megamenu cache after locale change on React pages
  • Loading branch information
jmiranda committed Nov 4, 2020
1 parent aae7915 commit ffd0071
Show file tree
Hide file tree
Showing 14 changed files with 2,799 additions and 62 deletions.
2 changes: 1 addition & 1 deletion grails-app/conf/Config.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -926,7 +926,7 @@ openboxes.stockCard.consumption.reasonCodes = [ReasonCode.STOCKOUT, ReasonCode.L
// Localization configuration - default and supported locales
openboxes.locale.custom.enabled = false
openboxes.locale.defaultLocale = 'en'
openboxes.locale.supportedLocales = ['ar', 'en', 'fr', 'de', 'it', 'es', 'pt', 'fi']
openboxes.locale.supportedLocales = ['ar','de','en','es','fr','it','pt','fi','zh']

// Currency configuration
openboxes.locale.defaultCurrencyCode = "USD"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
package org.pih.warehouse.api

import grails.converters.JSON
import grails.plugin.springcache.annotations.CacheFlush
import grails.plugin.springcache.annotations.Cacheable
import grails.util.GrailsUtil
import org.hibernate.ObjectNotFoundException
Expand Down Expand Up @@ -53,6 +54,7 @@ class ApiController {
render([status: 200, text: "User ${session.user} is now logged into ${location.name}"])
}

@CacheFlush(["megamenuCache"])
def chooseLocale = {
Locale locale = localizationService.getLocale(params.id)
if (!locale) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ package org.pih.warehouse.core

import org.springframework.web.multipart.MultipartFile

import java.nio.charset.Charset

class LocalizationController {

static allowedMethods = [save: "POST", update: "POST", delete: "POST", upload: "POST"]
Expand Down Expand Up @@ -142,7 +144,7 @@ class LocalizationController {
redirect(action: "list", id: params.id)
}
} else {
flash.message = "${warehouse.message(code: 'default.not.found.message', args: [warehouse.message(code: 'localization.label', default: 'Localization'), params.id])}"
flash.message = "${warehouse.message(code: 'default.not.found.message', args: [warehouse.message(code: 'localization.label', default: 'Localization'), params.id])}"
redirect(action: "list")
}
}
Expand Down Expand Up @@ -173,7 +175,7 @@ class LocalizationController {

if (command.validate() && !command.hasErrors()) {
Properties properties = new Properties()
properties.load(command.messageProperties.inputStream)
properties.load(new InputStreamReader(command.messageProperties.inputStream, Charset.forName("UTF-8")));
properties.stringPropertyNames().each { String property ->
String text = properties.getProperty(property)
log.info "Property " + property + " = " + text
Expand All @@ -182,7 +184,7 @@ class LocalizationController {
localization = new Localization(code: property, locale: command.locale.language, text: text)
}
localization.text = text
localization.save(flush: true)
localization.save()

}
flash.message = "${warehouse.message(code: 'default.uploaded.message', args: [warehouse.message(code: 'localizations.label')])}"
Expand Down
14 changes: 8 additions & 6 deletions grails-app/i18n/messages.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2530,13 +2530,15 @@ react.default.locale.label=Locale
react.default.ipAddress.label=IP Address
react.default.hostname.label=Hostname
react.default.timezone.label=Timezone
react.default.arabic.label=Arabic
react.default.arabic.label=عربى
react.default.chinese.label=中文
react.default.english.label=English
react.default.french.label=French
react.default.german.label=German
react.default.italian.label=Italian
react.default.spanish.label=Spanish
react.default.portuguese.label=Portuguese
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.goBack.label=Go back
react.default.submit.label=Submit
react.default.ok.label=Ok
Expand Down
12 changes: 7 additions & 5 deletions grails-app/i18n/messages_ar.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1938,12 +1938,14 @@ inventoryLevel.range.label=Range
default.reload.label=Reload {0}
# React
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.french.label=French
react.default.german.label=German
react.default.italian.label=Italian
react.default.spanish.label=Spanish
react.default.portuguese.label=Portuguese
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.error.requiredField.label=This field is required
react.stockMovement.error.createStockMovement.label=Could not create stock movement
react.stockMovement.error.saveRequisitionItems.label=Could not save requisition items
Expand Down
16 changes: 9 additions & 7 deletions grails-app/i18n/messages_de.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1932,13 +1932,15 @@ inventorySnapshot.label=Inventory Snapshot
inventoryLevel.range.label=Range
default.reload.label=Reload {0}
# React
react.default.arabic.label=Arabisch
react.default.english.label=Englisch
react.default.french.label=Französisch
react.default.german.label=Deutsch
react.default.italian.label=Italienisch
react.default.spanish.label=Spanisch
react.default.portuguese.label=Portugiesisch
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.error.requiredField.label=This field is required
react.stockMovement.error.createStockMovement.label=Could not create stock movement
react.stockMovement.error.saveRequisitionItems.label=Could not save requisition items
Expand Down
12 changes: 7 additions & 5 deletions grails-app/i18n/messages_es.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1433,13 +1433,15 @@ inventorySnapshot.label=Inventory Snapshot
inventoryLevel.range.label=Range
default.reload.label=Reload {0}
# React
react.default.arabic.label=Árabe
react.default.english.label=Inglés
react.default.french.label=Francés
react.default.german.label=Alemán
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Español
react.default.portuguese.label=Portugués
react.default.portuguese.label=Português
react.default.error.requiredField.label=This field is required
react.stockMovement.error.createStockMovement.label=Could not create stock movement
react.stockMovement.error.saveRequisitionItems.label=Could not save requisition items
Expand Down
14 changes: 8 additions & 6 deletions grails-app/i18n/messages_fi.properties
Original file line number Diff line number Diff line change
Expand Up @@ -2422,13 +2422,15 @@ react.default.locale.label=Locale
react.default.ipAddress.label=IP Address
react.default.hostname.label=Hostname
react.default.timezone.label=Timezone
react.default.arabic.label=Arabic
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.french.label=French
react.default.german.label=German
react.default.italian.label=Italian
react.default.spanish.label=Spanish
react.default.portuguese.label=Portuguese
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.goBack.label=Go back
react.default.submit.label=Submit
# Stock Movement
Expand Down
14 changes: 8 additions & 6 deletions grails-app/i18n/messages_fr.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1379,13 +1379,15 @@ react.default.locale.label=Locale
react.default.ipAddress.label=IP Address
react.default.hostname.label=Hostname
react.default.timezone.label=Timezone
react.default.arabic.label=Arabe
react.default.english.label=Anglais
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Allemand
react.default.italian.label=Italien
react.default.spanish.label=Espagnol
react.default.portuguese.label=Portugais
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.goBack.label=Retournez
react.default.submit.label=Soumettez
# Stock Movement
Expand Down
14 changes: 8 additions & 6 deletions grails-app/i18n/messages_it.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1932,13 +1932,15 @@ inventorySnapshot.label=Inventory Snapshot
inventoryLevel.range.label=Range
default.reload.label=Reload {0}
# React
react.default.arabic.label=Arabo
react.default.english.label=Inglese
react.default.french.label=Francese
react.default.german.label=Tedesco
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Spagnolo
react.default.portuguese.label=Portoghese
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.error.requiredField.label=This field is required
react.stockMovement.error.createStockMovement.label=Could not create stock movement
react.stockMovement.error.saveRequisitionItems.label=Could not save requisition items
Expand Down
12 changes: 7 additions & 5 deletions grails-app/i18n/messages_pt.properties
Original file line number Diff line number Diff line change
Expand Up @@ -1933,12 +1933,14 @@ inventorySnapshot.label=Inventory Snapshot
inventoryLevel.range.label=Range
default.reload.label=Reload {0}
# React
react.default.arabic.label=Árabe
react.default.english.label=Inglês
react.default.french.label=Francês
react.default.german.label=Alemão
react.default.arabic.label=العربية
react.default.chinese.label=中文
react.default.english.label=English
react.default.finnish.label=Suomi
react.default.french.label=Français
react.default.german.label=Deutsche
react.default.italian.label=Italiano
react.default.spanish.label=Espanhol
react.default.spanish.label=Español
react.default.portuguese.label=Português
react.default.error.requiredField.label=This field is required
react.stockMovement.error.createStockMovement.label=Could not create stock movement
Expand Down

0 comments on commit ffd0071

Please sign in to comment.