📄 msg.java
字号:
* @param ctx Context to retrieve language
* @param AD_Message Message Key
* @param getText if true only return Text, if false only return Tip
* @return translated text
*/
public static String getMsg (Properties ctx, String AD_Message, boolean getText)
{
return getMsg (Env.getAD_Language(ctx), AD_Message, getText);
} // getMsg
/**
* Get translated text message for AD_Message
* @param language Language
* @param AD_Message Message Key
* @param getText if true only return Text, if false only return Tip
* @return translated text
*/
public static String getMsg (Language language, String AD_Message, boolean getText)
{
return getMsg (language.getAD_Language(), AD_Message, getText);
} // getMsg
/**
* Get clear text for AD_Message with parameters
* @param ctx Context to retrieve language
* @param AD_Message Message yey
* @param args MessageFormat arguments
* @return translated text
* @see java.text.MessageFormat for formatting options
*/
public static String getMsg(Properties ctx, String AD_Message, Object[] args)
{
return getMsg (Env.getAD_Language(ctx), AD_Message, args);
} // getMsg
/**
* Get clear text for AD_Message with parameters
* @param language Language
* @param AD_Message Message yey
* @param args MessageFormat arguments
* @return translated text
* @see java.text.MessageFormat for formatting options
*/
public static String getMsg(Language language, String AD_Message, Object[] args)
{
return getMsg (language.getAD_Language(), AD_Message, args);
} // getMsg
/**
* Get clear text for AD_Message with parameters
* @param ad_language Language
* @param AD_Message Message yey
* @param args MessageFormat arguments
* @return translated text
* @see java.text.MessageFormat for formatting options
*/
public static String getMsg (String ad_language, String AD_Message, Object[] args)
{
String retStr = getMsg(ad_language, AD_Message);
retStr = MessageFormat.format(retStr, args); // format string
return retStr;
} // getMsg
/*************************************************************************/
/**
* Get Amount in Words
* @param language language
* @param amount numeric amount (352.80)
* @return amount in words (three*five*two 80/100)
*/
public static String getAmtInWords (Language language, String amount)
{
if (amount == null || language == null)
return amount;
//
StringBuffer sb = new StringBuffer();
int pos = amount.lastIndexOf('.');
int pos2 = amount.lastIndexOf(',');
if (pos2 > pos)
pos = pos2;
for (int i = 0; i < amount.length(); i++)
{
if (pos == i) // we are done
{
String cents = amount.substring(i+1);
sb.append(' ').append(cents).append("/100");
break;
}
else
{
char c = amount.charAt(i);
if (c == ',' || c == '.') // skip thousand separator
continue;
if (sb.length() > 0)
sb.append("*");
sb.append(getMsg(language, String.valueOf(c)));
}
}
return sb.toString();
} // getAmtInWords
/*************************************************************************/
/**
* Get Translation for Element
* @param ad_language language
* @param ColumnName column name
* @param isSOTrx if false PO terminology is used (if exists)
* @return Name of the Column or "" if not found
*/
public static String getElement (String ad_language, String ColumnName, boolean isSOTrx)
{
if (ColumnName == null || ColumnName.equals(""))
return "";
String AD_Language = ad_language;
if (AD_Language == null || AD_Language.length() == 0)
AD_Language = Language.getBaseAD_Language();
// Check AD_Element
String retStr = "";
try
{
PreparedStatement pstmt = null;
try
{
if (AD_Language == null || AD_Language.length() == 0 || Env.isBaseLanguage(AD_Language, "AD_Element"))
pstmt = DB.prepareStatement("SELECT Name, PO_Name FROM AD_Element WHERE UPPER(ColumnName)=?");
else
{
pstmt = DB.prepareStatement("SELECT t.Name, t.PO_Name FROM AD_Element_Trl t, AD_Element e "
+ "WHERE t.AD_Element_ID=e.AD_Element_ID AND UPPER(e.ColumnName)=? "
+ "AND t.AD_Language=?");
pstmt.setString(2, AD_Language);
}
}
catch (Exception e)
{
return ColumnName;
}
pstmt.setString(1, ColumnName.toUpperCase());
ResultSet rs = pstmt.executeQuery();
if (rs.next())
{
retStr = rs.getString(1);
if (!isSOTrx)
{
String temp = rs.getString(2);
if (temp != null && temp.length() > 0)
retStr = temp;
}
}
rs.close();
pstmt.close();
}
catch (SQLException e)
{
s_log.error ("getElement", e);
return "";
}
if (retStr != null)
return retStr.trim();
return retStr;
} // getElement
/**
* Get Translation for Element using Sales terminology
* @param ctx context
* @param ColumnName column name
* @return Name of the Column or "" if not found
*/
public static String getElement (Properties ctx, String ColumnName)
{
return getElement (Env.getAD_Language(ctx), ColumnName, true);
} // getElement
/**
* Get Translation for Element
* @param ctx context
* @param ColumnName column name
* @param isSOTrx sales transaction
* @return Name of the Column or "" if not found
*/
public static String getElement (Properties ctx, String ColumnName, boolean isSOTrx)
{
return getElement (Env.getAD_Language(ctx), ColumnName, isSOTrx);
} // getElement
/*************************************************************************/
/**
* "Translate" text.
* <pre>
* - Check AD_Message.AD_Message -> MsgText
* - Check AD_Element.ColumnName -> Name
* </pre>
* If checking AD_Element, the SO terminology is used.
* @param ad_language Language
* @param text Text
* @return translated text or original text if not found
*/
public static String translate(String ad_language, String text)
{
if (text == null || text.equals(""))
return "";
String AD_Language = ad_language;
if (AD_Language == null || AD_Language.length() == 0)
AD_Language = Language.getBaseAD_Language();
// Check AD_Message
String retStr = lookup (AD_Language, text);
if (retStr != null)
return retStr;
// Check AD_Element
retStr = getElement(AD_Language, text, true);
if (!retStr.equals(""))
return retStr.trim();
// Nothing found
if (!text.startsWith("*") && Log.getTraceLevel() > Log.l6_Database)
s_log.warn("translate - NOT found: " + text);
return text;
} // translate
/**
* "Translate" text.
* <pre>
* - Check Context
* - Check AD_Message.AD_Message -> MsgText
* - Check AD_Element.ColumnName -> Name
* </pre>
* @param ctx Context
* @param text Text
* @return translated text or original text if not found
*/
public static String translate(Properties ctx, String text)
{
String s = (String)ctx.get(text);
if (s != null && s.length() > 0)
return s;
return translate (Env.getAD_Language(ctx), text);
} // translate
/**
* "Translate" text.
* <pre>
* - Check AD_Message.AD_Message -> MsgText
* - Check AD_Element.ColumnName -> Name
* </pre>
* @param language Language
* @param text Text
* @return translated text or original text if not found
*/
public static String translate(Language language, String text)
{
return translate (language.getAD_Language(), text);
} // translate
/**
* Translate elements enclosed in @
* @param ctx Context
* @param text Text
* @return translated text or original text if not found
*/
public static String parseTranslation(Properties ctx, String text)
{
if (text == null || text.length() == 0)
return text;
String inStr = text;
String token;
StringBuffer outStr = new StringBuffer();
int i = inStr.indexOf("@");
while (i != -1)
{
outStr.append(inStr.substring(0, i)); // up to @
inStr = inStr.substring(i+1, inStr.length()); // from first @
int j = inStr.indexOf("@"); // next @
if (j < 0) // no second tag
{
inStr = "@" + inStr;
break;
}
token = inStr.substring(0, j);
outStr.append(translate(ctx, token)); // replace context
inStr = inStr.substring(j+1, inStr.length()); // from second @
i = inStr.indexOf("@");
}
outStr.append(inStr); // add remainder
return outStr.toString();
} // parseTranslation
} // Msg
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -