下面列出了java.text.MessageFormat#applyPattern ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private void initialize() {
URL changelog = release.getApplication().getChangelog();
if (changelog != null) {
WebEngine engine = changeView.getEngine();
String finalURL = String.format("%s?from=%d&to=%d", changelog, currentReleaseID, release.getId());
engine.load(finalURL);
} else {
changeView.setVisible(false);
changeView.setManaged(false);
}
Object[] messageArguments = { release.getApplication().getName(), currentVersion, release.getVersion() };
MessageFormat formatter = new MessageFormat("");
formatter.setLocale(resources.getLocale());
if (release.getLicenseVersion() != currentLicenseVersion) {
formatter.applyPattern(resources.getString("infotext.paidupgrade"));
} else {
formatter.applyPattern(resources.getString("infotext.freeupgrade"));
}
infoLabel.setText(formatter.format(messageArguments));
infoLabel.autosize();
}
protected String formatWithTimeZone(
String template,
Object[] arguments,
Locale locale,
TimeZone timezone)
{
MessageFormat mf = new MessageFormat(" ");
mf.setLocale(locale);
mf.applyPattern(template);
if (!timezone.equals(TimeZone.getDefault()))
{
Format[] formats = mf.getFormats();
for (int i = 0; i < formats.length; i++)
{
if (formats[i] instanceof DateFormat)
{
DateFormat temp = (DateFormat) formats[i];
temp.setTimeZone(timezone);
mf.setFormat(i,temp);
}
}
}
return mf.format(arguments);
}
/**
* Create contents of the dialog.
*
* @param parent
*/
@Override
protected Control createDialogArea(Composite parent) {
Composite cmp_Container = (Composite) super.createDialogArea(parent);
GridLayout gridLayout = (GridLayout) cmp_Container.getLayout();
gridLayout.verticalSpacing = 10;
gridLayout.horizontalSpacing = 10;
Label lbl_overwrite = new Label(cmp_Container, SWT.NONE);
Object[] messageArguments = {whichFile};
MessageFormat formatter = new MessageFormat(""); //$NON-NLS-1$
formatter.setLocale(MyLanguage.LOCALE);
formatter.applyPattern(I18n.DIALOG_Replace);
lbl_overwrite.setText(formatter.format(messageArguments));
return cmp_Container;
}
public String getPropertyMessage(String code, Object[] args, Locale locale) {
if (code == null) {
throw new IllegalArgumentException("code (key) cannot be null when looking up messages");
}
String message = null;
String template = bundle.getString(code);
if (template != null) {
if (args != null && args.length > 0) {
MessageFormat formatter = new MessageFormat("");
if (locale == null) {
locale = Locale.getDefault();
}
formatter.setLocale(locale);
formatter.applyPattern(template);
message = formatter.format(args);
} else {
message = template;
}
}
return message;
}
protected String formatWithTimeZone(
String template,
Object[] arguments,
Locale locale,
TimeZone timezone)
{
MessageFormat mf = new MessageFormat(" ");
mf.setLocale(locale);
mf.applyPattern(template);
if (!timezone.equals(TimeZone.getDefault()))
{
Format[] formats = mf.getFormats();
for (int i = 0; i < formats.length; i++)
{
if (formats[i] instanceof DateFormat)
{
DateFormat temp = (DateFormat) formats[i];
temp.setTimeZone(timezone);
mf.setFormat(i,temp);
}
}
}
return mf.format(arguments);
}
public String getPropertyMessage(String code, Object[] args, Locale locale) {
if (code == null) {
throw new IllegalArgumentException("code (key) cannot be null when looking up messages");
}
String message = null;
String template = bundle.getString(code);
if (template != null) {
if (args != null && args.length > 0) {
MessageFormat formatter = new MessageFormat("");
if (locale == null) {
locale = Locale.getDefault();
}
formatter.setLocale(locale);
formatter.applyPattern(template);
message = formatter.format(args);
} else {
message = template;
}
}
return message;
}
public static void main(String[] args) {
int planet = 7;
String event = "a disturbance in the Force";
String messageFormatPattern = "At {1,time,long} on {1,date,full}, there was {2} on planet {0,number,integer}.";
MessageFormat messageFormat = new MessageFormat(messageFormatPattern);
String result = messageFormat.format(new Object[]{planet, new Date(), event});
System.out.println(result);
// 重置 MessageFormatPattern
// applyPattern
messageFormatPattern = "This is a text : {0}, {1}, {2}";
messageFormat.applyPattern(messageFormatPattern);
result = messageFormat.format(new Object[]{"Hello,World", "666"});
System.out.println(result);
// 重置 Locale
messageFormat.setLocale(Locale.ENGLISH);
messageFormatPattern = "At {1,time,long} on {1,date,full}, there was {2} on planet {0,number,integer}.";
messageFormat.applyPattern(messageFormatPattern);
result = messageFormat.format(new Object[]{planet, new Date(), event});
System.out.println(result);
// 重置 Format
// 根据参数索引来设置 Pattern
messageFormat.setFormat(1,new SimpleDateFormat("YYYY-MM-dd HH:mm:ss"));
result = messageFormat.format(new Object[]{planet, new Date(), event});
System.out.println(result);
}
private static String getMessage(String key, Locale locale, Object... params){
MessageFormat mf = new MessageFormat("");
try{
if(locale == null){
mf.applyPattern(ResourceBundle.getBundle(BUNDLE).getString(key));
}else{
mf.applyPattern(ResourceBundle.getBundle(BUNDLE, locale).getString(key));
}
}catch(Exception e){
mf.applyPattern(key);
}
return mf.format(params);
}
/**
*
*/
private MessageFormat getMessageFormat(String pattern)
{
MessageFormat messageFormat = new MessageFormat("");
messageFormat.setLocale((Locale)locale.getValue());
messageFormat.applyPattern(pattern);
return messageFormat;
}
public void setInitialContext(InitialRenderContext context)
{
super.setInitialContext(context);
String outputTemplate = outputMessages.getString(getLocaleKey()
+ ".print");
formatter = new MessageFormat("");
formatter.applyPattern(outputTemplate);
}
public void setInitialContext(InitialRenderContext context)
{
super.setInitialContext(context);
String outputTemplate = outputMessages.getString(getLocaleKey()
+ ".print");
formatter = new MessageFormat("");
formatter.applyPattern(outputTemplate);
}
/**
* Replace MessageFormat(String, Locale) constructor (not available until JDK 1.4).
* @param pattern string
* @param locale Locale
* @return MessageFormat
*/
private MessageFormat createMessageFormat(String pattern, Locale locale) {
MessageFormat result = new MessageFormat(pattern);
if (locale != null) {
result.setLocale(locale);
result.applyPattern(pattern);
}
return result;
}
/**
* Replace MessageFormat(String, Locale) constructor (not available until JDK 1.4).
* @param pattern string
* @param locale Locale
* @return MessageFormat
*/
private MessageFormat createMessageFormat(String pattern, Locale locale) {
MessageFormat result = new MessageFormat(pattern);
if (locale != null) {
result.setLocale(locale);
result.applyPattern(pattern);
}
return result;
}
/**
* Replace MessageFormat(String, Locale) constructor (not available until JDK 1.4).
* @param pattern string
* @param locale Locale
* @return MessageFormat
*/
private MessageFormat createMessageFormat(String pattern, Locale locale) {
MessageFormat result = new MessageFormat(pattern);
if (locale != null) {
result.setLocale(locale);
result.applyPattern(pattern);
}
return result;
}
/**
* Replace MessageFormat(String, Locale) constructor (not available until JDK 1.4).
* @param pattern string
* @param locale Locale
* @return MessageFormat
*/
private MessageFormat createMessageFormat(final String pattern, final Locale locale) {
final MessageFormat result = new MessageFormat(pattern);
if (locale != null) {
result.setLocale(locale);
result.applyPattern(pattern);
}
return result;
}
/**
* Replace MessageFormat(String, Locale) constructor (not available until JDK 1.4).
* @param pattern string
* @param locale Locale
* @return MessageFormat
*/
private MessageFormat createMessageFormat(String pattern, Locale locale) {
MessageFormat result = new MessageFormat(pattern);
if (locale != null) {
result.setLocale(locale);
result.applyPattern(pattern);
}
return result;
}
public void test_equalsLjava_lang_Object() {
MessageFormat format1 = new MessageFormat("{0}");
MessageFormat format2 = new MessageFormat("{1}");
assertTrue("Should not be equal", !format1.equals(format2));
format2.applyPattern("{0}");
assertTrue("Should be equal", format1.equals(format2));
SimpleDateFormat date = (SimpleDateFormat) DateFormat.getTimeInstance();
format1.setFormat(0, DateFormat.getTimeInstance());
format2.setFormat(0, new SimpleDateFormat(date.toPattern()));
assertTrue("Should be equal2", format1.equals(format2));
}
public void test_setLocaleLjava_util_Locale() {
MessageFormat format = new MessageFormat("date {0,date}");
format.setLocale(Locale.CHINA);
assertEquals("Wrong locale1", Locale.CHINA, format.getLocale());
format.applyPattern("{1,date}");
assertEquals("Wrong locale3", DateFormat.getDateInstance(DateFormat.DEFAULT,
Locale.CHINA), format.getFormats()[0]);
}
public void setInitialContext(InitialRenderContext context)
{
super.setInitialContext(context);
String outputTemplate = outputMessages.getString(getLocaleKey()
+ ".print");
formatter = new MessageFormat("");
formatter.applyPattern(outputTemplate);
}
public void setInitialContext(InitialRenderContext context)
{
super.setInitialContext(context);
String outputTemplate = outputMessages.getString(getLocaleKey()
+ ".print");
formatter = new MessageFormat("");
formatter.applyPattern(outputTemplate);
}