ResourceBundle من جافا/الدعامات استبدال التعبيرات
-
09-06-2019 - |
سؤال
إذا كان لدي مورد حزمة الملكية الملف:
أ. الخصائص:
thekey={0} This is a test
ثم لدي كود جافا الذي يقوم بتحميل حزمة الموارد:
ResourceBundle labels = ResourceBundle.getBundle("A", currentLocale);
labels.getString("thekey");
كيف يمكنني استبدال {0} النص مع بعض القيمة
labels.getString("thekey", "Yes!!!");
مثل أن الناتج يخرج مثل:
Yes!!! This is a test.
لا توجد الأساليب التي هي جزء من حزمة الموارد للقيام بذلك.أيضا, أنا في الدعامات, هل هناك طريقة لاستخدام MessageProperties القيام استبدال.
المحلول
فئة تبحث عنه هو جافا.النص.MessageFormat;على وجه التحديد ، داعيا
MessageFormat.format("{0} This {1} a test", new Object[] {"Yes!!!", "is"});
أو
MessageFormat.format("{0} This {1} a test", "Yes!!!", "is");
سيعود
"Yes!!! This is a test"
[للأسف, أنا لا يمكن أن تساعد مع الدعامات الصدد ، على الرغم من هذا يبدو ذات الصلة.]
نصائح أخرى
هناك فئة org.أباتشي.الدعامات.util.MessageResources مع أساليب مختلفة getMessage بعض منهم اتخاذ الحجج كما أن الرسالة الفعلية.
على سبيل المثال.:
messageResources.getMessage("thekey", "Yes!!!");
لا تنتمي إلى StackOverflow