mirror of
git://xwords.git.sourceforge.net/gitroot/xwords/xwords
synced 2025-01-30 08:34:16 +01:00
save edited translations
This commit is contained in:
parent
3040003126
commit
d00e49f843
3 changed files with 53 additions and 15 deletions
|
@ -19,10 +19,11 @@
|
||||||
|
|
||||||
package org.eehouse.android.xw4.loc;
|
package org.eehouse.android.xw4.loc;
|
||||||
|
|
||||||
import android.content.Intent;
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
import android.os.Bundle;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.Intent;
|
||||||
|
import android.os.Bundle;
|
||||||
|
import android.widget.EditText;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
|
||||||
import org.eehouse.android.xw4.DelegateBase;
|
import org.eehouse.android.xw4.DelegateBase;
|
||||||
|
@ -32,6 +33,8 @@ public class LocItemEditDelegate extends DelegateBase {
|
||||||
|
|
||||||
private static final String KEY = "KEY";
|
private static final String KEY = "KEY";
|
||||||
private Activity m_activity;
|
private Activity m_activity;
|
||||||
|
private String m_key;
|
||||||
|
private EditText m_edit;
|
||||||
|
|
||||||
protected LocItemEditDelegate( Activity activity, Bundle savedInstanceState )
|
protected LocItemEditDelegate( Activity activity, Bundle savedInstanceState )
|
||||||
{
|
{
|
||||||
|
@ -44,16 +47,32 @@ public class LocItemEditDelegate extends DelegateBase {
|
||||||
setContentView( R.layout.loc_item_edit );
|
setContentView( R.layout.loc_item_edit );
|
||||||
|
|
||||||
String key = getIntent().getStringExtra( KEY );
|
String key = getIntent().getStringExtra( KEY );
|
||||||
|
m_key = key;
|
||||||
|
|
||||||
TextView view = (TextView)findViewById( R.id.english_view );
|
TextView view = (TextView)findViewById( R.id.english_view );
|
||||||
view.setText( key );
|
view.setText( key );
|
||||||
view = (TextView)findViewById( R.id.xlated_view_blessed );
|
view = (TextView)findViewById( R.id.xlated_view_blessed );
|
||||||
view.setText( LocUtils.getXlation( m_activity, true, key ) );
|
view.setText( LocUtils.getXlation( m_activity, key, false, true ) );
|
||||||
|
m_edit = (EditText)findViewById( R.id.xlated_view_local );
|
||||||
|
m_edit.setText( LocUtils.getXlation( m_activity, key, true, true ) );
|
||||||
|
|
||||||
setLabel( R.id.english_label, R.string.loc_main_english );
|
setLabel( R.id.english_label, R.string.loc_main_english );
|
||||||
setLabel( R.id.blessed_label, R.string.loc_main_yourlang );
|
setLabel( R.id.blessed_label, R.string.loc_main_yourlang );
|
||||||
setLabel( R.id.local_label, R.string.loc_main_yourlang );
|
setLabel( R.id.local_label, R.string.loc_main_yourlang );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onPause()
|
||||||
|
{
|
||||||
|
// Save any local translation
|
||||||
|
CharSequence txt = m_edit.getText();
|
||||||
|
if ( null != txt && 0 < txt.length() ) {
|
||||||
|
LocUtils.setXlation( m_activity, m_key, txt.toString() );
|
||||||
|
}
|
||||||
|
|
||||||
|
super.onPause();
|
||||||
|
}
|
||||||
|
|
||||||
private void setLabel( int viewID, int strID )
|
private void setLabel( int viewID, int strID )
|
||||||
{
|
{
|
||||||
TextView view = (TextView)findViewById( viewID );
|
TextView view = (TextView)findViewById( viewID );
|
||||||
|
|
|
@ -63,7 +63,7 @@ public class LocListItem extends LinearLayout
|
||||||
|
|
||||||
private void setXlated()
|
private void setXlated()
|
||||||
{
|
{
|
||||||
m_xlation = LocUtils.getXlation( getContext(), true, m_pair.getKey() );
|
m_xlation = LocUtils.getXlation( getContext(), m_pair.getKey(), true );
|
||||||
if ( null != m_xlation ) {
|
if ( null != m_xlation ) {
|
||||||
m_pair.setXlation( m_xlation );
|
m_pair.setXlation( m_xlation );
|
||||||
m_xlated.setText( m_xlation );
|
m_xlated.setText( m_xlation );
|
||||||
|
|
|
@ -155,7 +155,7 @@ public class LocUtils {
|
||||||
public static String xlateString( Context context, String str )
|
public static String xlateString( Context context, String str )
|
||||||
{
|
{
|
||||||
if ( LocIDs.getS_MAP( context ).containsKey( str ) ) {
|
if ( LocIDs.getS_MAP( context ).containsKey( str ) ) {
|
||||||
String xlation = getXlation( context, true, str );
|
String xlation = getXlation( context, str, true );
|
||||||
if ( null != xlation ) {
|
if ( null != xlation ) {
|
||||||
str = xlation;
|
str = xlation;
|
||||||
}
|
}
|
||||||
|
@ -198,7 +198,7 @@ public class LocUtils {
|
||||||
String result = null;
|
String result = null;
|
||||||
String key = keyForID( context, id );
|
String key = keyForID( context, id );
|
||||||
if ( null != key ) {
|
if ( null != key ) {
|
||||||
result = getXlation( context, canUseDB, key );
|
result = getXlation( context, key, canUseDB );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( null == result ) {
|
if ( null == result ) {
|
||||||
|
@ -229,19 +229,38 @@ public class LocUtils {
|
||||||
s_xlationsLocal.put( key, txt );
|
s_xlationsLocal.put( key, txt );
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String getXlation( Context context, boolean canUseDB,
|
protected static String getXlation( Context context, String key,
|
||||||
String key )
|
boolean canUseDB )
|
||||||
|
{
|
||||||
|
return getXlation( context, key, null, canUseDB );
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static String getXlation( Context context, String key,
|
||||||
|
boolean forceLocal, boolean canUseDB )
|
||||||
|
{
|
||||||
|
return getXlation( context, key, new Boolean(forceLocal), canUseDB );
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getXlation( Context context, String key,
|
||||||
|
Boolean forceLocal, boolean canUseDB )
|
||||||
{
|
{
|
||||||
if ( canUseDB ) {
|
if ( canUseDB ) {
|
||||||
loadXlations( context );
|
loadXlations( context );
|
||||||
}
|
}
|
||||||
String result = null;
|
String result = null;
|
||||||
if ( null != s_xlationsLocal ) {
|
|
||||||
result = s_xlationsLocal.get( key );
|
if ( null == forceLocal || forceLocal ) {
|
||||||
|
if ( null != s_xlationsLocal ) {
|
||||||
|
result = s_xlationsLocal.get( key );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ( null == result && null != s_xlationsBlessed ) {
|
|
||||||
result = s_xlationsBlessed.get( key );
|
if ( null == forceLocal || !forceLocal ) {
|
||||||
|
if ( null == result && null != s_xlationsBlessed ) {
|
||||||
|
result = s_xlationsBlessed.get( key );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( UPPER_CASE && null == result ) {
|
if ( UPPER_CASE && null == result ) {
|
||||||
result = toUpperCase( key );
|
result = toUpperCase( key );
|
||||||
}
|
}
|
||||||
|
@ -340,7 +359,7 @@ public class LocUtils {
|
||||||
String key = iter.next();
|
String key = iter.next();
|
||||||
String english = context.getString( map.get( key ) );
|
String english = context.getString( map.get( key ) );
|
||||||
Assert.assertTrue( english.equals( key ) );
|
Assert.assertTrue( english.equals( key ) );
|
||||||
String xlation = getXlation( context, true, key );
|
String xlation = getXlation( context, key, true );
|
||||||
result[ii] = new LocSearcher.Pair( key, english, xlation );
|
result[ii] = new LocSearcher.Pair( key, english, xlation );
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
|
@ -396,8 +415,8 @@ public class LocUtils {
|
||||||
private static void loadXlations( Context context )
|
private static void loadXlations( Context context )
|
||||||
{
|
{
|
||||||
if ( null == s_xlationsLocal || null == s_xlationsBlessed ) {
|
if ( null == s_xlationsLocal || null == s_xlationsBlessed ) {
|
||||||
Object[] asObjs = DBUtils.getXlations( context,
|
Object[] asObjs =
|
||||||
getCurLocale( context ) );
|
DBUtils.getXlations( context, getCurLocale( context ) );
|
||||||
s_xlationsLocal = (Map<String,String>)asObjs[0];
|
s_xlationsLocal = (Map<String,String>)asObjs[0];
|
||||||
s_xlationsBlessed = (Map<String,String>)asObjs[1];
|
s_xlationsBlessed = (Map<String,String>)asObjs[1];
|
||||||
DbgUtils.logf( "loadXlations: got %d local strings, %d blessed strings",
|
DbgUtils.logf( "loadXlations: got %d local strings, %d blessed strings",
|
||||||
|
|
Loading…
Add table
Reference in a new issue