Importing SVN archives - Trunk
This commit is contained in:
parent
fc4c6bd340
commit
ff53af6668
507 changed files with 8866 additions and 2450 deletions
legacyworlds-server/legacyworlds-server-beans/legacyworlds-server-beans-i18n
|
@ -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>
|
|
@ -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( );
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Reference in a new issue