⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 translatorservice.java

📁 J2ME MIDP_Example_Applications
💻 JAVA
字号:
// Copyright 2003 Nokia Corporation.
//
// THIS SOURCE CODE IS PROVIDED 'AS IS', WITH NO WARRANTIES WHATSOEVER,
// EXPRESS OR IMPLIED, INCLUDING ANY WARRANTY OF MERCHANTABILITY, FITNESS
// FOR ANY PARTICULAR PURPOSE, OR ARISING FROM A COURSE OF DEALING, USAGE
// OR TRADE PRACTICE, RELATING TO THE SOURCE CODE OR ANY WARRANTY OTHERWISE
// ARISING OUT OF ANY PROPOSAL, SPECIFICATION, OR SAMPLE AND WITH NO
// OBLIGATION OF NOKIA TO PROVIDE THE LICENSEE WITH ANY MAINTENANCE OR
// SUPPORT. FURTHERMORE, NOKIA MAKES NO WARRANTY THAT EXERCISE OF THE
// RIGHTS GRANTED HEREUNDER DOES NOT INFRINGE OR MAY NOT CAUSE INFRINGEMENT
// OF ANY PATENT OR OTHER INTELLECTUAL PROPERTY RIGHTS OWNED OR CONTROLLED
// BY THIRD PARTIES
//
// Furthermore, information provided in this source code is preliminary,
// and may be changed substantially prior to final release. Nokia Corporation
// retains the right to make changes to this source code at
// any time, without notice. This source code is provided for informational
// purposes only.
//
// Nokia and Nokia Connecting People are registered trademarks of Nokia
// Corporation.
// Java and all Java-based marks are trademarks or registered trademarks of
// Sun Microsystems, Inc.
// Other product and company names mentioned herein may be trademarks or
// trade names of their respective owners.
//
// A non-exclusive, non-transferable, worldwide, limited license is hereby
// granted to the Licensee to download, print, reproduce and modify the
// source code. The licensee has the right to market, sell, distribute and
// make available the source code in original or modified form only when
// incorporated into the programs developed by the Licensee. No other
// license, express or implied, by estoppel or otherwise, to any other
// intellectual property rights is granted herein.


package example.translator;


import java.rmi.RemoteException;
import java.util.Locale;
import java.util.Properties;


public class TranslatorService
     implements Translator
{
    // The language options (i.e. the inputLocale and outputLocale)
    // are strings should that follow the IETF RFC 3066 'Tags for the
    // Identification of Languages'. Only simple language tags like
    // "en" and "pt" are currently used.
    
    private final static String[] locales = { "de",
                                              "en",
                                              "es",
                                              "fr",
                                              "it",
                                              "pt" };
    private final static int DE = 0;
    private final static int EN = 1;
    private final static int ES = 2;
    private final static int FR = 3;
    private final static int IT = 4;
    private final static int PT = 5;


    private String[] getOutputLocales(String inputLocale)
        throws RemoteException
    {
        // The service's options for translating text from one language
        // to another may depend on the input language.
        String[] deTranslationOptions = { locales[EN], locales[FR] };
        String[] enTranslationOptions = { locales[ES],
                                          locales[DE],
                                          locales[FR],
                                          locales[IT],
                                          locales[PT] };
        String[] esTranslationOptions = { locales[EN] };
        String[] frTranslationOptions = { locales[DE], locales[EN] };
        String[] itTranslationOptions = { locales[EN] };
        String[] ptTranslationOptions = { locales[EN] };

        if (inputLocale.startsWith(locales[DE]))
        {
            return deTranslationOptions;
        }
        else if (inputLocale.startsWith(locales[EN]))
        {
            return enTranslationOptions;
        }
        else if (inputLocale.startsWith(locales[ES]))
        {
            return esTranslationOptions;
        }
        else if (inputLocale.startsWith(locales[FR]))
        {
            return frTranslationOptions;
        }
        else if (inputLocale.startsWith(locales[IT]))
        {
            return itTranslationOptions;
        }
        else if (inputLocale.startsWith(locales[PT]))
        {
            return ptTranslationOptions;
        }
        else
        {
            String msg = errorString("Translation not supported for " +
                                     '"' + inputLocale + '"');
            throw new RemoteException(msg);
        }
    }


    private boolean isTranslationSupported(String inputLocale,
                                           String outputLocale)
        throws RemoteException
    {
        String[] supportedOutputLocales = getOutputLocales(inputLocale);
        int i;

        for (i = 0; i < supportedOutputLocales.length; i++)
        {
            if (supportedOutputLocales[i].startsWith(
                outputLocale.substring(0, 1)))
            {
                break;
            }
        }

        if (i == supportedOutputLocales.length)
        {
            return false;
        }
        else
        {
            return true;
        }
    }


    public String getTranslation(String inputLocale,
                                 String outputLocale,
                                 String inputText)
        throws RemoteException
    {
        if (isTranslationSupported(inputLocale, outputLocale))
        {
            // Note: A real translation service should be used
            // instead of the simple dummy 'test' implementation below.

            return dummyGetTranslation(inputLocale,
                                       outputLocale,
                                       inputText);
        }
        else
        {
            String msg = errorString("Translation not supported from " +
                                     '"' + inputLocale + '"' + " to " +
                                     '"' + outputLocale + '"');
            throw new RemoteException(msg);
        }
    }


    // An overly simplified implementation of a translation service.
    // It only translates a small pre-defined set of phrases.
    private String dummyGetTranslation(String inputLocale,
                                       String outputLocale,
                                       String inputText)
        throws RemoteException
    {        
        // Each row contains a phrase translated in the
        // following order: DE, EN, ES, FR, IT, PT
        String[][] phrases =
        {
            { "katze", "cat", "gato", "chat", "gatto", "gato" },               
             
            { "hallo", "hello", "hola", "bonjour", "ciao", "ol

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -