Importing SVN archives - Trunk

This commit is contained in:
Emmanuel BENOîT 2018-10-23 09:43:42 +02:00
parent fc4c6bd340
commit ff53af6668
507 changed files with 8866 additions and 2450 deletions
legacyworlds-server/legacyworlds-server-beans/legacyworlds-server-beans-i18n
pom.xml
src/main/java/com/deepclone/lw/beans/i18n

View file

@ -4,13 +4,13 @@
<parent>
<artifactId>legacyworlds-server-beans</artifactId>
<groupId>com.deepclone.lw</groupId>
<version>5.99.1</version>
<version>5.99.2</version>
</parent>
<groupId>com.deepclone.lw</groupId>
<artifactId>legacyworlds-server-beans-i18n</artifactId>
<name>Legacy Worlds internationalisation</name>
<version>5.99.1</version>
<version>5.99.2</version>
<description>This package defines the two beans which control server-side internationalised text management.</description>
</project>

View file

@ -6,6 +6,7 @@ import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import com.deepclone.lw.interfaces.i18n.LanguageTranslator;
import com.deepclone.lw.interfaces.i18n.Translator;
import com.deepclone.lw.interfaces.i18n.UnknownLanguageException;
import com.deepclone.lw.interfaces.i18n.UnknownStringException;
@ -21,6 +22,67 @@ import com.deepclone.lw.interfaces.i18n.UnknownStringException;
public class TranslatorBean
implements Translator
{
/**
* Implementation of a language-specific translator.
*/
private static class LanguageTranslatorImpl
implements LanguageTranslator
{
/** Language used by the translator */
private final String language;
/** Translations store */
private final I18NData data;
LanguageTranslatorImpl( String language , TranslatorBean translator )
{
this.language = language;
this.data = translator.data;
}
/* Documentation in LanguageTranslator interface */
@Override
public String getLanguage( )
{
return this.language;
}
/* Documentation in LanguageTranslator interface */
@Override
public String getLanguageName( )
{
this.data.readLock( ).lock( );
try {
return this.data.getLanguageName( language );
} finally {
this.data.readLock( ).unlock( );
}
}
/* Documentation in LanguageTranslator interface */
@Override
public String translate( String string )
throws UnknownStringException
{
this.data.readLock( ).lock( );
try {
if ( !this.data.hasString( string ) ) {
throw new UnknownStringException( string );
}
return this.data.getTranslation( language , string );
} finally {
this.data.readLock( ).unlock( );
}
}
}
/** Translations store */
private I18NData data;
@ -119,4 +181,21 @@ public class TranslatorBean
}
}
/* Documentation in Translator interface */
@Override
public LanguageTranslator getLanguageTranslator( String language )
throws UnknownLanguageException
{
this.data.readLock( ).lock( );
try {
if ( !this.data.isLanguageComplete( language ) ) {
throw new UnknownLanguageException( language );
}
return new LanguageTranslatorImpl( language , this );
} finally {
this.data.readLock( ).unlock( );
}
}
}