-
Notifications
You must be signed in to change notification settings - Fork 763
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
added i18n #549
base: uinverse
Are you sure you want to change the base?
added i18n #549
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
Fizz.Arabic=نفطة | ||
Fizz.Brazilian=Fizz | ||
Fizz.Chinese=嘶嘶 | ||
Fizz.English=Fizz | ||
Fizz.French=Cloques | ||
Fizz.German=FizzGenericName | ||
Fizz.Japanese=フィズ | ||
Fizz.Korean=물집이 생기다 | ||
Fizz.Italian=Fizz | ||
Buzz.Arabic=أزيز | ||
Buzz.Brazilian=Buzz | ||
Buzz.Chinese=嗡嗡 | ||
Buzz.English=Buzz | ||
Buzz.French=Buzz | ||
Buzz.German=Buzz | ||
Buzz.Japanese=バズ | ||
Buzz.Korean=윙윙거리는 소리 | ||
Buzz.Italian=Bum |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -19,5 +19,8 @@ public class Constants { | |
public static final int INTEGER_ORIGIN_ZERO_VALUE = 0; | ||
public static final int LOOP_INC_VALUE = 1; | ||
public static final int LOOP_INIT_VALUE = 1; | ||
public static final String I18N_LIB_PROPERTIES_PATH = "assets/configuration/i18n/i18n_lib.properties"; | ||
public static final String LANGUAGE = "French"; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why is the language hardcoded to There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just there a default language was necessary then I gave a random. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. BLOCKER: This is not enterprise code quality. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. How to set the default language ? What about let default language follow the system language that FizzBuzzEnterpriseEdition detected ? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. And then , how to change language while the FizzBuzzEnterpriseEdition don't need to rerun? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am not an expert on the l18n topic but someone could implement a FizzBuzzLanguageDetectorFactory which will return a FizzBuzzSystemLanguageDetector which then returns the String for the Language. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That sounds great.The FizzBuzzSystemLanguageDetector will detect the language after running .However ,what if the system language changes ?I'm afraid that the FizzBuzzSystemLanguageDetector detects at all times ,so it would be best that the FizzBuzzSystemLanguageDetector will be notified when the system language changes . There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oh thats a real big problem here. If i understand you properly you are unsure how to handle the language change if the FizzBuzz runs over a long time? This is a serious issue. The language should change indeed, so that the calcucation progress of the fizzbuzz software is not lost. The easist way we could archive this is that we exchange the constant language with a proper variable which is not constant. Good point. |
||
public static final String I18N_LIB_PROPERTIES_SEPARATOR = "."; | ||
|
||
} |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
package com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.strategies; | ||
|
||
import com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.impl.Constants; | ||
import com.seriouscompany.business.java.fizzbuzz.packagenamingpackage.interfaces.strategies.FizzBuzzOutputStrategy; | ||
import org.springframework.core.io.support.PropertiesLoaderUtils; | ||
|
||
import java.io.FileInputStream; | ||
import java.io.IOException; | ||
import java.io.InputStream; | ||
import java.util.Properties; | ||
|
||
/** | ||
* @author zwk | ||
* @date 2021/12/15 | ||
**/ | ||
public class FizzBuzzOutputStrategyI18nProxy implements FizzBuzzOutputStrategy { | ||
|
||
private final FizzBuzzOutputStrategy _fizzBuzzOutputStrategy; | ||
|
||
public FizzBuzzOutputStrategyI18nProxy(final FizzBuzzOutputStrategy _fizzBuzzOutputStrategy) { | ||
this._fizzBuzzOutputStrategy = _fizzBuzzOutputStrategy; | ||
} | ||
|
||
/** | ||
* @author zwk | ||
* @date 17:53 2021/12/15 | ||
* @param output | ||
* @return void | ||
**/ | ||
@Override | ||
public void output(String output) throws IOException { | ||
Properties properties = PropertiesLoaderUtils.loadAllProperties(Constants.I18N_LIB_PROPERTIES_PATH); | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. According to the Spring documentation, this method always uses ISO-8859-1, for compatibility with the 1990s. Did you verify that this code works properly on Microsoft Windows, printing the intended messages instead of mojibake? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think this is a good idea. Many of our users are in 1995, thought the majority of our users are in 2007. |
||
String pathSuffix = Constants.I18N_LIB_PROPERTIES_SEPARATOR + Constants.LANGUAGE; | ||
String fizz = properties.getProperty(Constants.FIZZ+pathSuffix); | ||
String buzz = properties.getProperty(Constants.BUZZ+pathSuffix); | ||
output = output.replaceAll(Constants.FIZZ,fizz).replaceAll(Constants.BUZZ,buzz); | ||
this._fizzBuzzOutputStrategy.output(output); | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There is no translation for eigennamen in german. The FizzBuzz application is called fizz buzz in german so you could simple use Fizz here.