Windows Na'vi Locale File

Started by Yawne Zize’ite, August 02, 2011, 04:18:46 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Yawne Zize’ite

One problem I have with current Na'vi keyboards for Windows is that they all claim to be keyboards for English.  I have several IMEs on my computer and I'm used to being able to flip between languages rather than keyboards.

To compile a Windows keyboard so that it displays as Na'vi rather than English, you need to first install a Na'vi locale file on your system.  So I made one using mostly ISO settings (aiming to cover as vast an area as possible).  I've pulled the US locale since the ISO locale has many improvements; if people want the US locale I will put it back.

What the Na'vi-ISO "locale" does:
- Add "Na'vi" as a language option, with the ISO 639 code QNV.  (QAA-QTZ is the zone reserved for local and private use.)
- Use Na'vi days of the week (and my abbreviations for them).
- Number the months in Na'vi.
- Use Na'vi forms for "infinity" (I used 'i'aluke tì'i'aluke) and "US Dollar" (I used YESä Yueseyä Tolar, taking toktor as a model for spelling pronunciations.).  I don't know where these might appear in use, though.
- Use the 24-hour clock by default.
- Use YYYY-MM-dd (e.g. 2011-08-03) for dates by default.
- Use A4 paper by default.
- Use metric by default.
- Enables my Na'vi keyboard*

What the Na'vi-ISO "locale" doesn't do:
- Offer a large number of formats, including yours.  The idea is to use ISO formats where reasonable so as to be the most generally applicable.
- Sort in Na'vi order.  I'm not much of a programmer and don't know where to start to write a sort algorithm to plug into Windows; I suspect the first step is something like "learn C#."
- Translate anything but some date, time, and currency names.

Notes:
- Custom locales in this format are only supported by Windows Vista and Windows 7.  It shouldn't work on Windows XP.
- I used ʼ U+02BC for the apostrophe in the file names and in the locale.  It displays perfectly on my computer; tell me if it doesn't on yours.

If you open up a keyboard layout file after adding this locale, Na'vi will be an option for the keyboard language.  You can then compile the keyboard and it will show up as OL Other Languages - Naʼvi (United States) if it is your first custom-language keyboard.  (If you have multiple custom-language keyboards, all will be assigned the language of the first custom-language keyboard you install, no matter which locale you compiled them under or how many locales you have installed.)

You can uninstall the locale through the Control Panel.

The .msi file is the installer file for the locale; the .ldml file is the data file used by the Locale Builder (which can be downloaded at http://www.microsoft.com/download/en/details.aspx?id=5662 - note that it must be run under Vista compatibility mode to work on Windows 7).

As an example of what can be done with a Na'vi locale, I have attached my variant of Tirea Aean's KxWERTY keyboard.  It should display as OL Na'vi (United States).
*The Na'vi-ISO locale will enable the Na'vi keyboard when you switch to it - if you have already installed the keyboard itself (it only enables an existing keyboard), but disabled it after installation.  It's not really that useful.
Edit: Had to squish a bug - the locale was enabling the wrong keyboard!

Please send me any feedback, corrections, improvements, or other comments!

Tirea Aean

all this just so it doesnt appear as a US -EN kbl? hmm

also, idk if this means anything, but the official loan for USA appears to be YuESey (Yu.E.Sey?). I would have expected "YUESä Tolar" not a big deal though.

infinity... 'i'a is a verb, so you cannot use adpositions on it. try tì'i'aluke. tì'i'a being the attested abstract noun form of the verb 'i'a.

So when you switch languages under this locale, I assume it switches keyboards. but to what? I made kxwerty, a Windows keyboard layout. but Idk if you already made one for this. Not that ANY of this matters to me personally because I'm not a windows user. I just wanted to show some support and ask a few questions. ;)

Yawne Zize’ite

#2
Quote from: Tirea Aean on August 02, 2011, 04:59:39 PM
all this just so it doesnt appear as a US -EN kbl? hmm

also, idk if this means anything, but the official loan for USA appears to be YuESey (Yu.E.Sey?). I would have expected "YUESä Tolar" not a big deal though.

infinity... 'i'a is a verb, so you cannot use adpositions on it. try tì'i'aluke. tì'i'a being the attested abstract noun form of the verb 'i'a.

So when you switch languages under this locale, I assume it switches keyboards. but to what? I made kxwerty, a Windows keyboard layout. but Idk if you already made one for this. Not that ANY of this matters to me personally because I'm not a windows user. I just wanted to show some support and ask a few questions. ;)
I'd already figured out how this works for an earlier project, so it was just a matter of opening up the Locale Builder and substituting a few strings.  It's also something that should be done for its own sake; if it can be improved to the point of having a full Na'vi-language calendar and a Na'vi sort order, it could be useful.

Thank you for the correction to "infinity" - yes, I was trying to use "endless."
I tried abbreviating Yu.E.Sey as YES, but on thinking it over I think you're right; instead of there being a full name to abbreviate, it looks more like a single word "Yuesey" in Na'vi, so I made it the "Yueseyä Tolar."
I have updated the files in the first post with these corrections.

No, installing the locale neither installs nor uninstalls the keyboard; it doesn't even add the keyboard if the keyboard is installed but not selected.

Tirea Aean

OH! I see.

Very nice. Again, if I used Windows, I would totally install this.

Swoka Ikran

Looks interesting :)

I'd try it, but of the 12 different OSes I have, Vista and 7 are not currently in the list. :(
2010 was the year of the Na'vi.Vivar 'ivong Na'vi!


 
Avatray | NWOTD Sigbars | Sacred's Sigbar Tool | My collection of Avatar merchandise

Yawne Zize’ite

After some poking at the LDML file, I did discover the code to enable a keyboard for a locale and added it to my latest Na'vi locale.  It's not offered in the Locale Builder; you need to know the Locale ID (for custom locales it is always 0c00) and the Keyboard ID (for the first custom locale keyboard it should be a0000c00, for the second a0010c00, and so on).  The Na'vi-ISO locale is currently set to enable 0c00:a0000c00, so if you installed a different custom language keyboard first it will enable the wrong keyboard.  There appears to be a way to enable a specific keyboard by product key, but since the keyboard and locale are both in alpha I don't want to tie them together that tightly yet.

Yawne Zize’ite

Since I think I've done about as much as I can with a simple Windows locale file, I've turned my attention to the Unicode CLDR Project.  It's an attempt to consolidate useful locale data for all the world's languages in one place using one format.  More usefully for users of an unrecognized language, they also offer tools to create POSIX (*nix) and OpenOffice locale files, for basic Na'vi support in OpenOffice.  (And by "basic" I mean "it lets you mark text as Na'vi, provides dates in Na'vi, and sorts things in the right order.")

However, they want a lot of data:

Quote from: CLDRCore Data for New Locales
This document describes the minimal data needed for a new locale. There are two kinds of data:

    Core XML Data - This is data that the CLDR committee needs from the proposer before a new locale is added. The proposer is expected to also get a Survey Tool account, and contribute towards the Minimal Data.
    Minimal Data Commitment - Data that is expected to be provided for each locale. If it is not supplied in a timely fashion, the committee may remove the locale.

(The parenthesis at the start of each line below has the approximate number of strings for each item.)

Core XML Data

First, make sure you have correct language code according to Picking the Right Language Identifier. Then collect the following data.

    (04) Exemplar sets: main, auxiliary, index, punctuation. [main/xxx.xml]
    (02) Orientation (bidi writing systems only) [main/xxx.xml]
    (01) Plural rules [supplemental/plurals.xml]
    (01) Default content script and region (normally: normally country with largest population using that language, and normal script for that).  [supplemental/supplementalMetadata.xml]
    (N) Verify the country data ( i.e. which territories in which the language is spoken enough to create a locale ) [supplemental/supplementalData.xml]
    *(N) Romanization table (non-Latin writing systems only) [spreadsheet, we'll translate into transforms/xxx-en.xml]

Minimal Data Commitment

    (44+) 4 main Date/Time formats, 12 long&abbreviated, format&stand-alone month-names, 7 long&abbreviated day-names, 2 long day periods.
    (N) Collation rules
    (01) Name of the language in the language.
    (N) For any country locales, name of the country in the language, name/symbol for that country's currency. Must be at least one, for the default content locale.
    (02) Datetime pattern, intervalFormatFallback
    (05) (for Latn) decimal and grouping separators; decimal, currency, percent formats
    (N) Names of countries (territories) with that language as official.
    (M) Names of exemplarCities in multizone countries with that language as official
    (05) Timezone patterns [http://cldr.unicode.org/translation/timezones]
    (02) localePattern/Separator [http://cldr.unicode.org/translation/localepattern]
    (03) key names
    (14) long/short unit names (time intervals)
I have the exemplar sets, Na'vi doesn't need orientation or Romanization notes, Na'vi plural rules in conjunction with numbers are very simple, I believe the default script is Latin and region is United States, but Na'vi speakers are scattered and sparse enough that a country locale shouldn't be made unless (as in the Windows system) a neutral, language-only locale can't be made.  The rest, though, is going to be a lot more work.  I think I have the collation order down, but I don't know what people prefer for date/time display, decimal separators, etc.  (Let alone the missing key vocabulary, need to decide how to represent foreign city names, and general unlikelihood of getting this locale into CLDR.)

Irtaviš Ačankif

AFAIK the "Infinity" word is used when a program tries to reach a floating-point number larger than a certain limit.

Previously Ithisa Kīranem, Uniltìrantokx te Skxawng.

Name from my Sakaš conlang, from Sakasul Ältäbisäl Acarankïp

"First name" is Ačankif, not Eltabiš! In Na'vi, Atsankip.