| /* |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You 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. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| */ |
| |
| package flex.tools.debugger.cli; |
| |
| import java.io.InputStream; |
| import java.util.ArrayList; |
| import java.util.List; |
| import java.util.Locale; |
| |
| public class Help |
| { |
| private Help() |
| { |
| } |
| |
| public static InputStream getResourceAsStream() |
| { |
| List<String> names = calculateLocalizedFilenames("fdbhelp", ".txt", Locale.getDefault()); //$NON-NLS-1$ //$NON-NLS-2$ |
| for (int i=names.size()-1; i>=0; --i) { |
| InputStream stm = Help.class.getResourceAsStream(names.get(i)); |
| if (stm != null) { |
| return stm; |
| } |
| } |
| return null; |
| } |
| |
| /** |
| * Returns an array of filenames that might match the given baseName and locale. |
| * For example, if baseName is "fdbhelp", the extension is ".txt", and the locale |
| * is "en_US", then the returned array will be (in this order): |
| * |
| * <ul> |
| * <li> <code>fdbhelp.txt</code> </li> |
| * <li> <code>fdbhelp_en.txt</code> </li> |
| * <li> <code>fdbhelp_en_US.txt</code> </li> |
| * </ul> |
| */ |
| private static List<String> calculateLocalizedFilenames(String baseName, String extensionWithDot, Locale locale) { |
| List<String> names = new ArrayList<String>(); |
| String language = locale.getLanguage(); |
| String country = locale.getCountry(); |
| String variant = locale.getVariant(); |
| |
| names.add(baseName + extensionWithDot); |
| |
| if (language.length() + country.length() + variant.length() == 0) { |
| //The locale is "", "", "". |
| return names; |
| } |
| final StringBuilder temp = new StringBuilder(baseName); |
| temp.append('_'); |
| temp.append(language); |
| if (language.length() > 0) { |
| names.add(temp.toString() + extensionWithDot); |
| } |
| |
| if (country.length() + variant.length() == 0) { |
| return names; |
| } |
| temp.append('_'); |
| temp.append(country); |
| if (country.length() > 0) { |
| names.add(temp.toString() + extensionWithDot); |
| } |
| |
| if (variant.length() == 0) { |
| return names; |
| } |
| temp.append('_'); |
| temp.append(variant); |
| names.add(temp.toString() + extensionWithDot); |
| |
| return names; |
| } |
| } |