/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * 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 . */ #ifndef __com_sun_star_lang_Locale_idl__ #define __com_sun_star_lang_Locale_idl__ #include module com { module sun { module star { module lang { /** object represents a specific geographical, political, or cultural region.

An operation that requires a Locale to perform its task is called locale-sensitive and uses the Locale to tailor information for the user. For example, displaying a number is a locale-sensitive operation; the number should be formatted according to the customs/conventions of the user's native country, region, or culture.

Because a Locale object is just an identifier for a region, no validity check is performed. If you want to see whether particular resources are available for the Locale, use the com::sun::star::resource::XLocale::getAvailableLocales() method to ask for the locales it supports.

Each implementation that performs locale-sensitive operations allows you to get all the available objects of that type. Use the com::sun::star::resource::XLocale interface to set the locale.

*/ published struct Locale { /** specifies an ISO 639 Language Code.

These codes are preferably the lower-case two-letter codes as defined by ISO 639-1, or three-letter codes as defined by ISO 639-3. You can find a full list of these codes at a number of sites, such as:
http://sil.org/iso639-3/codes.asp.

If this field contains an empty string, the meaning depends on the context.

Since LibreOffice 4.2, if the locale can not be represented using only ISO 639 and ISO 3166 codes this field contains the ISO 639-3 reserved for local use code "qlt" and a BCP 47 language tag is present in the Variant field.

*/ string Language; /** specifies an ISO 3166 Country Code.

These codes are the upper-case two-letter codes as defined by ISO 3166-1. You can find a full list of these codes at a number of sites, such as:
http://www.iso.org/iso/country_codes/iso_3166_code_lists/country_names_and_code_elements.htm.

If this field contains an empty string, the meaning depends on the context.

*/ string Country; /** specifies a BCP 47 Language Tag.

Since LibreOffice 4.2, if the Language field is the code "qlt" this field contains the full BCP 47 language tag. If the Language field is not "qlt" this field is empty.

You can find BCP 47 language tag resources at
http://www.langtag.net/.

Earlier versions of the documentation mentioned "vendor and browser-specific" codes but that was never supported. Use of any arbitrary strings in the Variant field that do not form a valid BCP 47 language tag is strongly deprecated.

*/ string Variant; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */