Get rid of manual translations for numbers.
Use DecimalFormat instead. Also, carry over the old rule
that these numbers are localized only for "FA".
Change-Id: I0d743dc7387510ab1481dc2b365ea45911bcc141
diff --git a/res/values/strings.xml b/res/values/strings.xml
index eb6dbdb..069a049 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -15,26 +15,6 @@
~ limitations under the License
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
- <!-- The digit to be displayed on the 0 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_0_number">0</string>
- <!-- The digit to be displayed on the 1 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_1_number">1</string>
- <!-- The digit to be displayed on the 2 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_2_number">2</string>
- <!-- The digit to be displayed on the 3 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_3_number">3</string>
- <!-- The digit to be displayed on the 4 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_4_number">4</string>
- <!-- The digit to be displayed on the 5 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_5_number">5</string>
- <!-- The digit to be displayed on the 6 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_6_number">6</string>
- <!-- The digit to be displayed on the 7 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_7_number">7</string>
- <!-- The digit to be displayed on the 8 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_8_number">8</string>
- <!-- The digit to be displayed on the 9 key of the dialpad [TRANSLATE FOR FA ONLY] [CHAR LIMIT=1]-->
- <string name="dialpad_9_number">9</string>
<!-- Do not translate. -->
<string name="dialpad_star_number">*</string>
<!-- Do not translate. -->
diff --git a/src/com/android/phone/common/dialpad/DialpadView.java b/src/com/android/phone/common/dialpad/DialpadView.java
index 3cdc30e..3f404ee 100644
--- a/src/com/android/phone/common/dialpad/DialpadView.java
+++ b/src/com/android/phone/common/dialpad/DialpadView.java
@@ -37,6 +37,8 @@
import com.android.phone.common.R;
import com.android.phone.common.animation.AnimUtils;
+import java.text.DecimalFormat;
+import java.text.NumberFormat;
import java.util.Locale;
/**
@@ -107,12 +109,6 @@
}
private void setupKeypad() {
- final int[] numberIds = new int[] {R.string.dialpad_0_number, R.string.dialpad_1_number,
- R.string.dialpad_2_number, R.string.dialpad_3_number, R.string.dialpad_4_number,
- R.string.dialpad_5_number, R.string.dialpad_6_number, R.string.dialpad_7_number,
- R.string.dialpad_8_number, R.string.dialpad_9_number, R.string.dialpad_star_number,
- R.string.dialpad_pound_number};
-
final int[] letterIds = new int[] {R.string.dialpad_0_letters, R.string.dialpad_1_letters,
R.string.dialpad_2_letters, R.string.dialpad_3_letters, R.string.dialpad_4_letters,
R.string.dialpad_5_letters, R.string.dialpad_6_letters, R.string.dialpad_7_letters,
@@ -125,11 +121,30 @@
TextView numberView;
TextView lettersView;
+ final Locale currentLocale = resources.getConfiguration().locale;
+ final NumberFormat nf;
+ // We translate dialpad numbers only for "fa" and not any other locale
+ // ("ar" anybody ?).
+ if ("fa".equals(currentLocale.getLanguage())) {
+ nf = DecimalFormat.getInstance(resources.getConfiguration().locale);
+ } else {
+ nf = DecimalFormat.getInstance(Locale.ENGLISH);
+ }
+
for (int i = 0; i < mButtonIds.length; i++) {
dialpadKey = (DialpadKeyButton) findViewById(mButtonIds[i]);
numberView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_number);
lettersView = (TextView) dialpadKey.findViewById(R.id.dialpad_key_letters);
- final String numberString = resources.getString(numberIds[i]);
+
+ final String numberString;
+ if (mButtonIds[i] == R.id.pound) {
+ numberString = resources.getString(R.string.dialpad_pound_number);
+ } else if (mButtonIds[i] == R.id.star) {
+ numberString = resources.getString(R.string.dialpad_star_number);
+ } else {
+ numberString = nf.format(i);
+ }
+
final RippleDrawable rippleBackground =
(RippleDrawable) getContext().getDrawable(R.drawable.btn_dialpad_key);
if (mRippleColor != null) {