Язык

ResourceBundle Класс

Определение

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

[Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)]
public abstract class ResourceBundle : Java.Lang.Object
[<Android.Runtime.Register("java/util/ResourceBundle", DoNotGenerateAcw=true)>]
type ResourceBundle = class
    inherit Object
Наследование
ResourceBundle
Производный
Атрибуты

Комментарии

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту. Если вашей программе требуется определенный языковой стандарт, String например, программа может загрузить ее из пакета ресурсов, подходящего для языкового стандарта текущего пользователя. Таким образом, можно написать программный код, который в значительной степени не зависит от языкового стандарта пользователя, изолируя большую часть, если не все, от сведений о языковом стандарте в пакетах ресурсов.

Это позволяет создавать программы, которые могут<: UL><LI> можно легко локализовать или перевести на разные языки <LI> дескриптор нескольких языковых стандартов одновременно, чтобы легко изменить его< позже, чтобы поддерживать еще больше языковых ><стандартов /UL>

Пакеты ресурсов относятся к семействам, члены которых используют общее базовое имя, но имена которых также имеют дополнительные компоненты, определяющие их языковые стандарты. Например, базовое имя семейства пакетов ресурсов может быть "MyResources". Семейство должно иметь пакет ресурсов по умолчанию, который просто имеет то же имя, что и его семейство - "MyResources", и будет использоваться в качестве пакета последнего курорта, если конкретный языковой стандарт не поддерживается. Затем семья может предоставить столько членов языкового стандарта, сколько необходимо, например немецкий с именем "MyResources_de".

Каждый пакет ресурсов в семействе содержит те же элементы, но элементы были переведены для языкового стандарта, представленного этим пакетом ресурсов. Например, для отмены операций может String использоваться как MyResources, так и "MyResources_de". В MyResources может содержать "Отмена" String и в "MyResources_de" он может содержать "Abbrechen".

Если существуют разные ресурсы для разных стран, можно сделать специализации: например, "MyResources_de_CH" содержит объекты для немецкого языка (de) в Швейцарии (CH). Если вы хотите изменить только некоторые ресурсы в специализации, это можно сделать.

Если программе требуется конкретный языковой стандарт, он загружает ResourceBundle класс с помощью #getBundle(java.lang.String, java.util.Locale) getBundle метода: <blockquote>

ResourceBundle myResources =
                 ResourceBundle.getBundle("MyResources", currentLocale);

</blockquote>

Пакеты ресурсов содержат пары "ключ-значение". Ключи однозначно определяют конкретный языковой стандарт в пакете. Ниже приведен пример ListResourceBundle , содержащий две пары "ключ-значение": <blockquote>

public class MyResources extends ListResourceBundle {
                protected Object[][] getContents() {
                    return new Object[][] {
                        // LOCALIZE THE SECOND STRING OF EACH ARRAY (e.g., "OK")
                        {"OkKey", "OK"},
                        {"CancelKey", "Cancel"},
                        // END OF MATERIAL TO LOCALIZE
                   };
                }
            }

<Ключи /blockquote> всегда Stringявляются s. В этом примере ключи : "OkKey" и "CancelKey". В приведенном выше примере значения также Stringявляются s--"ОК" и "Отмена", но они не должны быть. Значения могут быть любым типом объекта.

Объект извлекается из пакета ресурсов с помощью соответствующего метода получения. Так как "OkKey" и "CancelKey" являются обеими строками, вы будете использовать getString для их извлечения: <blockquote>

button1 = new Button(myResources.getString("OkKey"));
            button2 = new Button(myResources.getString("CancelKey"));

</blockquote> Методы getter все требуют ключа в качестве аргумента и возвращают объект, если он найден. Если объект не найден, метод getter создает MissingResourceExceptionисключение.

getStringКроме того, ResourceBundle предоставляет метод получения строковых массивов, getStringArrayа также универсальный getObject метод для любого другого типа объекта. При использовании getObjectнеобходимо привести результат к соответствующему типу. Например: <blockquote>

int[] myIntegers = (int[]) myResources.getObject("intList");

</blockquote>

Платформа Java предоставляет два подкласса ResourceBundleи ListResourceBundlePropertyResourceBundleобеспечивает довольно простой способ создания ресурсов. Как вы видели кратко в предыдущем примере, ListResourceBundle управляет своим ресурсом в виде списка пар "ключ-значение". PropertyResourceBundle использует файл свойств для управления ресурсами.

Если ListResourceBundle или PropertyResourceBundle не соответствует вашим потребностям, вы можете написать собственный ResourceBundle подкласс. Подклассы должны переопределить два метода: handleGetObject и getKeys().

Реализация подкласса ResourceBundle должна быть потокобезопасной, если она одновременно используется несколькими потоками. Реализации не абстрактных методов в этом классе, а также методы в прямых известных конкретных подклассах и ListResourceBundle являются потокобезопаснымиPropertyResourceBundle.

<h3>ResourceBundle.Control</h3>

Класс ResourceBundle.Control предоставляет сведения, необходимые для выполнения процесса загрузки пакета методами getBundle фабрики, которые принимают ResourceBundle.Control экземпляр. Вы можете реализовать собственный подкласс, чтобы включить форматы пакетов ресурсов, изменить стратегию поиска или определить параметры кэширования. Дополнительные сведения см. в описаниях класса и #getBundle(String, Locale, ClassLoader, Control) getBundle метода фабрики.

<Управление кэшем> h3</h3>

Экземпляры пакета ресурсов, созданные getBundle методами фабрики, кэшируются по умолчанию, а методы фабрики возвращают один и тот же экземпляр пакета ресурсов несколько раз, если он был кэширован. getBundle клиенты могут очистить кэш, управлять временем существования экземпляров кэшированного пакета ресурсов с помощью значений времени в реальном времени или не кэшировать экземпляры пакета ресурсов. Дополнительные сведения см. в описаниях метода <><getBundle> или фабрики кода#clearCache(ClassLoader) clearCacheControl#getTimeToLive(String, Locale) ResourceBundle.Control.getTimeToLive #getBundle(String, Locale, ClassLoader, Control). Control#needsReload(String, Locale, String, ClassLoader, ResourceBundle, long) ResourceBundle.Control.needsReload

<h3 Example>/h3<>

Ниже приведен очень простой пример подкласса ResourceBundle , MyResourcesкоторый управляет двумя ресурсами (для большего количества ресурсов, которые, вероятно, будут использоваться Map). Обратите внимание, что не нужно указать значение, если "родительский уровень" ResourceBundle обрабатывает тот же ключ с тем же значением (что и для окKey ниже). <blockquote>

// default (English language, United States)
            public class MyResources extends ResourceBundle {
                public Object handleGetObject(String key) {
                    if (key.equals("okKey")) return "Ok";
                    if (key.equals("cancelKey")) return "Cancel";
                    return null;
                }

                public Enumeration&lt;String&gt; getKeys() {
                    return Collections.enumeration(keySet());
                }

                // Overrides handleKeySet() so that the getKeys() implementation
                // can rely on the keySet() value.
                protected Set&lt;String&gt; handleKeySet() {
                    return new HashSet&lt;String&gt;(Arrays.asList("okKey", "cancelKey"));
                }
            }

            // German language
            public class MyResources_de extends MyResources {
                public Object handleGetObject(String key) {
                    // don't need okKey, since parent level handles it.
                    if (key.equals("cancelKey")) return "Abbrechen";
                    return null;
                }

                protected Set&lt;String&gt; handleKeySet() {
                    return new HashSet&lt;String&gt;(Arrays.asList("cancelKey"));
                }
            }

</blockquote> Вы не должны ограничивать себя использованием одной семьи ResourceBundles. Например, у вас может быть набор пакетов для сообщений об исключениях ExceptionResources (, ExceptionResources_fr ,ExceptionResources_de, ...) и один для мини-приложений (WidgetResourceWidgetResources_fr, WidgetResources_de...); разбиение ресурсов, однако вам нравится.

Добавлено в версии 1.1.

Java документации по java.util.ResourceBundle.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Конструкторы

Имя. Описание
ResourceBundle()

Конструктор единственного.

ResourceBundle(IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Свойства

Имя. Описание
BaseBundleName

Возвращает базовое имя этого пакета, если известно или null неизвестно.

Class

Возвращает класс среды выполнения этого Objectобъекта.

(Унаследовано от Object)
Handle

Дескриптор базового экземпляра Android.

(Унаследовано от Object)
JniIdentityHashCode

Возвращает хэш-код удостоверения, назначенный этому Java одноранговой среде выполнения взаимодействия.

(Унаследовано от Object)
JniManagedPeerState

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
JniPeerMembers

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

Keys

Возвращает имена ресурсов, содержащихся в этом ResourceBundleразделе.

Locale

Возвращает языковой стандарт этого пакета ресурсов.

Parent

Родительский пакет этого пакета.

PeerReference

Возвращает ссылку на объект JNI для этого Java однорангового узла.

(Унаследовано от Object)
ThresholdClass

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

ThresholdType

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из кода.

Методы

Имя. Описание
ClearCache()

Удаляет все пакеты ресурсов из кэша, загруженные с помощью загрузчика класса вызывающего объекта.

ClearCache(ClassLoader)

Удаляет все пакеты ресурсов из кэша, загруженного заданным загрузчиком класса.

Clone()

Создает и возвращает копию этого объекта.

(Унаследовано от Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
ContainsKey(String)

Определяет, содержится ли данное key значение в этих ResourceBundle или родительских пакетах.

Dispose()

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
Dispose(Boolean)

Освобождает ресурсы, удерживаемые этим Java одноранговым узлом.

(Унаследовано от Object)
DisposeUnlessReferenced()

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
Equals(Object)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
Equals(Object)

Указывает, равен ли другой объект этому объекту.

(Унаследовано от Object)
GetBundle(String, Locale, ClassLoader, ResourceBundle+Control)

Возвращает пакет ресурсов, используя указанное базовое имя, языковой стандарт по умолчанию и загрузчик класса вызывающего объекта.

GetBundle(String, Locale, ClassLoader)

Возвращает пакет ресурсов с помощью указанного базового имени, языкового стандарта и загрузчика классов.

GetBundle(String, Locale, ResourceBundle+Control)

Возвращает пакет ресурсов, используя указанное базовое имя, языковой стандарт по умолчанию и загрузчик класса вызывающего объекта.

GetBundle(String, Locale)

Возвращает пакет ресурсов, используя указанное базовое имя и языковой стандарт, а также загрузчик класса вызывающего объекта.

GetBundle(String, ResourceBundle+Control)

Возвращает пакет ресурсов, используя указанное базовое имя, языковой стандарт по умолчанию и загрузчик класса вызывающего объекта.

GetBundle(String)

Возвращает пакет ресурсов, используя указанное базовое имя, языковой стандарт по умолчанию и загрузчик класса вызывающего объекта.

GetHashCode()

Возвращает хэш-значение кода для объекта.

(Унаследовано от Object)
GetObject(String)

Возвращает объект для заданного ключа из этого пакета ресурсов или одного из его родителей.

GetString(String)

Получает строку для заданного ключа из этого пакета ресурсов или одного из его родителей.

GetStringArray(String)

Возвращает массив строк для заданного ключа из этого пакета ресурсов или одного из его родителей.

HandleGetObject(String)

Возвращает объект для заданного ключа из этого пакета ресурсов.

HandleKeySet()

Возвращает ключиSet, содержащиеся <только> в em</em>.ResourceBundle

JavaFinalize()
Устаревшие.

Вызывается сборщиком мусора в объекте, когда сборка мусора определяет, что больше ссылок на объект нет.

(Унаследовано от Object)
KeySet()

Set Возвращает все ключи, содержащиеся в этом ResourceBundle и родительских пакетах.

Notify()

Просыпается один поток, ожидающий монитора этого объекта.

(Унаследовано от Object)
NotifyAll()

Просыпает все потоки, ожидающие монитора этого объекта.

(Унаследовано от Object)
SetHandle(IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от Object)
SetParent(ResourceBundle)

Задает родительский пакет этого пакета.

SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
ToArray<T>()

Создает управляемый массив из этого Java оболочки массива.

(Унаследовано от Object)
ToString()

Возвращает строковое представление объекта.

(Унаследовано от Object)
UnregisterFromRuntime()

Отменяет регистрацию этого Java однорангового узла из среды выполнения взаимодействия.

(Унаследовано от Object)
Wait()

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, путем <><уведомления/>em или <эм>прерванного</em.>

(Унаследовано от Object)
Wait(Int64, Int32)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)
Wait(Int64)

Приводит к тому, что текущий поток будет ждать, пока он не проснется, как правило, при <>получении уведомления</>em или <>эм прерваны< или> до тех пор, пока не истекло определенное количество реального времени.

(Унаследовано от Object)

Явные реализации интерфейса

Имя. Описание
IJavaPeerable.Disposed()

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
IJavaPeerable.Finalized()

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

(Унаследовано от JavaObject)

Методы расширения

Имя. Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

Пакеты ресурсов содержат объекты, относящиеся к языковому стандарту.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к