diff dwtx/core/internal/runtime/LocalizationUtils.d @ 3:6518c18a01f7

eclipse.core package without osgi dependencies
author Frank Benoit <benoit@tionex.de>
date Wed, 26 Mar 2008 00:57:19 +0100
parents
children 46a6e0e6ccd4
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/dwtx/core/internal/runtime/LocalizationUtils.d	Wed Mar 26 00:57:19 2008 +0100
@@ -0,0 +1,59 @@
+/*******************************************************************************
+ * Copyright (c) 2006 IBM Corporation and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     IBM Corporation - initial API and implementation
+ * Port to the D programming language:
+ *     Frank Benoit <benoit@tionex.de>
+ *******************************************************************************/
+module dwtx.core.internal.runtime.LocalizationUtils;
+
+import dwt.dwthelper.utils;
+
+/**
+ * Helper methods related to string localization.
+ *
+ * @since dwtx.equinox.common 3.3
+ */
+public class LocalizationUtils {
+    /**
+     * This method can be used in the absence of NLS class. The method tries to
+     * use the NLS-based translation routine. If it falls, the method returns the original
+     * non-translated key.
+     *
+     * @param key case-sensetive name of the filed in the translation file representing
+     * the string to be translated
+     * @return
+     */
+    static public String safeLocalize(String key) {
+//TODO: LocalizationUtils tries to load module CommonMessages. How to handle this?
+//         try {
+//             Class messageClass = Class.forName("dwtx.core.internal.runtime.CommonMessages"); //$NON-NLS-1$
+//             if (messageClass is null)
+//                 return key;
+//             Field field = messageClass.getDeclaredField(key);
+//             if (field is null)
+//                 return key;
+//             Object value = field.get(null);
+//             if (value instanceof String)
+//                 return (String) value;
+//         } catch (ClassNotFoundException e) {
+//             // eat exception and fall through
+//         } catch (NoClassDefFoundError e) {
+//             // eat exception and fall through
+//         } catch (SecurityException e) {
+//             // eat exception and fall through
+//         } catch (NoSuchFieldException e) {
+//             // eat exception and fall through
+//         } catch (IllegalArgumentException e) {
+//             // eat exception and fall through
+//         } catch (IllegalAccessException e) {
+//             // eat exception and fall through
+//         }
+        return key;
+    }
+}