ItEr22S04ArquitecturaServidorItEr21S04: Add support for printing i18n texts that need extra parameters

This commit is contained in:
Diego Pino Garcia 2009-08-19 10:35:29 +02:00 committed by Óscar González Fernández
parent 7b9070b61b
commit 5fae23e7e1
5 changed files with 149 additions and 5 deletions

View file

@ -25,7 +25,28 @@ public class I18nHelper {
return i18n;
}
public static String _(String str) {
return getI18n().tr(str);
public static String _(String text) {
return getI18n().tr(text);
}
}
public static String _(String text, Object o1) {
return getI18n().tr(text, o1);
}
public static String _(String text, Object o1, Object o2) {
return getI18n().tr(text, o1, o2);
}
public static String _(String text, Object o1, Object o2, Object o3) {
return getI18n().tr(text, o1, o2, o3);
}
public static String _(String text, Object o1, Object o2, Object o3,
Object o4) {
return getI18n().tr(text, o1, o2, o3, o4);
}
public static String _(String text, Object[] objects) {
return getI18n().tr(text, objects);
}
}

View file

@ -28,4 +28,25 @@ public class I18nHelper {
public static String _(String str) {
return getI18n().tr(str);
}
}
public static String _(String text, Object o1) {
return getI18n().tr(text, o1);
}
public static String _(String text, Object o1, Object o2) {
return getI18n().tr(text, o1, o2);
}
public static String _(String text, Object o1, Object o2, Object o3) {
return getI18n().tr(text, o1, o2, o3);
}
public static String _(String text, Object o1, Object o2, Object o3,
Object o4) {
return getI18n().tr(text, o1, o2, o3, o4);
}
public static String _(String text, Object[] objects) {
return getI18n().tr(text, objects);
}
}

View file

@ -0,0 +1,88 @@
package org.navalplanner.web.common.components;
import org.navalplanner.web.I18nHelper;
import org.zkoss.zk.ui.HtmlMacroComponent;
/**
* ZK macro component for translating texts created dinamically, that means,
* those which need one or more parameters
*
* @author Diego Pino García <dpino@igalia.com>
*/
public class I18n extends HtmlMacroComponent {
public String value;
public String arg1;
public String arg2;
public String arg3;
public String arg4;
public I18n() {
}
public String getArg1() {
return arg1;
}
public void setArg1(String arg1) {
this.arg1 = arg1;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getArg2() {
return arg2;
}
public void setArg2(String arg2) {
this.arg2 = arg2;
}
public String getArg3() {
return arg3;
}
public void setArg3(String arg3) {
this.arg3 = arg3;
}
public String getArg4() {
return arg4;
}
public void setArg4(String arg4) {
this.arg4 = arg4;
}
public String getI18n() {
if (arg1 != null && arg2 != null && arg3 != null && arg4 != null) {
return I18nHelper._(value, arg1, arg2, arg3, arg4);
}
if (arg1 != null && arg2 != null && arg3 != null) {
return I18nHelper._(value, arg1, arg2, arg3);
}
if (arg1 != null && arg2 != null) {
return I18nHelper._(value, arg1, arg2);
}
if (arg1 != null) {
return I18nHelper._(value, arg1);
}
return I18nHelper._(value);
}
public void afterCompose() {
super.afterCompose();
}
}

View file

@ -11,4 +11,10 @@
<macro-uri>/common/components/twowayselector.zul</macro-uri>
</component>
</language-addon>
<component>
<component-name>i18n</component-name>
<component-class>org.navalplanner.web.common.components.I18n</component-class>
<macro-uri>/common/components/i18n.zul</macro-uri>
</component>
</language-addon>

View file

@ -0,0 +1,8 @@
<zk>
<zscript><![CDATA[
top = self;
]]>
</zscript>
<label value="@{top.i18n}" />
</zk>