blob: 00d90cac73e974c7bd17b3d8a0fbad9092470a1d [file] [log] [blame]
<!-- -->
<!-- Copyright 2008 Google Inc. -->
<!-- Licensed under the Apache License, Version 2.0 (the "License"); you -->
<!-- may not use this file except in compliance with the License. You may -->
<!-- may obtain a copy of the License at -->
<!-- -->
<!-- http://www.apache.org/licenses/LICENSE-2.0 -->
<!-- -->
<!-- Unless required by applicable law or agreed to in writing, software -->
<!-- distributed under the License is distributed on an "AS IS" BASIS, -->
<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or -->
<!-- implied. License for the specific language governing permissions and -->
<!-- limitations under the License. -->
<!-- Internationalization support. -->
<!-- -->
<module>
<inherits name="com.google.gwt.regexp.RegExp"/>
<inherits name="com.google.gwt.safehtml.SafeHtml"/>
<source path="" includes="client/,shared/" />
<!-- Browser-sensitive code should use the 'locale' client property. -->
<!-- 'default' is always defined. -->
<define-property name="locale" values="default" />
<property-provider name="locale">
<![CDATA[
try {
var locale;
var defaultLocale = "/*-FALLBACK-*/" || 'default';
// Look for the locale as a url argument
if (locale == null) {
var args = location.search;
var startLang = args.indexOf("locale=");
if (startLang >= 0) {
var language = args.substring(startLang);
var begin = language.indexOf("=") + 1;
var end = language.indexOf("&");
if (end == -1) {
end = language.length;
}
locale = language.substring(begin, end);
}
}
if (locale == null) {
// Look for the locale on the web page
locale = __gwt_getMetaProperty("locale")
}
if (locale == null) {
// Look for an override computed by other means in the selection script
locale = $wnd['__gwt_Locale'];
} else {
$wnd['__gwt_Locale'] = locale || defaultLocale;
}
if (locale == null) {
return defaultLocale;
}
while (!__gwt_isKnownPropertyValue("locale", locale)) {
var lastIndex = locale.lastIndexOf("_");
if (lastIndex == -1) {
locale = defaultLocale;
break;
} else {
locale = locale.substring(0,lastIndex);
}
}
return locale;
} catch(e){
alert("Unexpected exception in locale detection, using default: " + e);
return "default";
}
]]>
</property-provider>
<generate-with class="com.google.gwt.i18n.rebind.LocalizableGenerator">
<when-type-assignable class="com.google.gwt.i18n.client.Localizable" />
</generate-with>
<generate-with class="com.google.gwt.i18n.rebind.LocaleInfoGenerator">
<when-type-is class="com.google.gwt.i18n.client.impl.LocaleInfoImpl" />
</generate-with>
<generate-with class="com.google.gwt.i18n.rebind.CurrencyListGenerator">
<when-type-is class="com.google.gwt.i18n.client.CurrencyList" />
</generate-with>
<generate-with class="com.google.gwt.i18n.rebind.CustomDateTimeFormatGenerator">
<when-type-assignable class="com.google.gwt.i18n.client.CustomDateTimeFormat" />
</generate-with>
<!--
Set of locales to be selectable at runtime. Only those which extend
the locale of the current permutation will actually be included. Note
that currently only number/date format constants, locale names, and
currency data will support runtime locales - everything else will just
reference the compile-time locale set in the "locale" property.
-->
<define-configuration-property name="runtime.locales" is-multi-valued="true"/>
<set-configuration-property name="runtime.locales" value=""/>
<!--
A "real" locale to be served by default (i.e. if the browser either
doesn't have a requested locale, or it cannot be satisfied with any
of the available locales). The non-internationalized value "default"
is actually deficient for any actual locale, so users should set this
when then either <extend-property> or <define-property> user.agents for
their available translations. You should still have a locale named
"default" (because various tools expect that to be valid), but it will
be generated as the locale specified here.
-->
<set-property-fallback name="locale" value="default"/>
<!-- Force BiDi policy to be enabled -->
<define-property name="gwt.forceBidi" values="true, false"/>
<!-- Default to not forced -->
<set-property name="gwt.forceBidi" value="false"/>
<!-- Replace the BidiPolicyImpl -->
<replace-with class="com.google.gwt.i18n.client.BidiPolicy.BidiPolicyImplOn">
<when-type-is class="com.google.gwt.i18n.client.BidiPolicy.BidiPolicyImpl"/>
<when-property-is name="gwt.forceBidi" value="true"/>
</replace-with>
</module>