ISOコード(ISO 3166-1 Alpha-2 code)で示した国の名称を取得するAppleScriptです。
現在のロケールでローカライズして取得するもの(retCountryNameInCurrentLocale)と、指定ロケールでローカライズするもの(retCountryNameInSpecifiedLocale)を用意しておきました。
Mac App Storeに出したDouble PDF v2.0(30言語以上ローカライズした)の審査は年越し確実で、審査に1か月以上かかるという、自分の知っている範囲での最長記録を更新しつつあります(AppleがOSに作ったバグを回避する以外の追加機能はわずかなのに)。
そんな中、各国語で国名を表記する方法を調べておきました。ヒンディー語、タイ語、ギリシア語あたりは文字が見慣れないながらもギリギリ文字単位での識別が可能で、非日常感があって(日本語の表記範囲で出てこない文字なので)クールな感じがします(個人の見解です)。アラビア語やヘブライ語になってしまうと、コンピュータの挙動が変わってしまうので(表記が右→左)、ちょっとシャレにならない感じであります。
AppleScript名:ISOコードから国名を取得.scpt |
— – Created by: Takaaki Naganoya – Created on: 2019/12/30 — – Copyright © 2019 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later use framework "Foundation" use scripting additions set aCountryName to retCountryNameInCurrentLocale("GE") of me –> "ジョージア" —In Japanese (Current Locale, diffenret in each user) set bCountryName to retCountryNameInSpecifiedLocale("GE", "en_US") of me –> "Georgia" –In English set cCountryName to retCountryNameInSpecifiedLocale("GE", "fr") of me –> "Géorgie"–In French set dCountryName to retCountryNameInSpecifiedLocale("GE", "ru") of me –> "Грузия"–In Russian set eCountryName to retCountryNameInSpecifiedLocale("GE", "zh") of me –>"格鲁吉亚"–In Chinese set fCountryName to retCountryNameInSpecifiedLocale("GE", "ko_KR") of me –> "조지아"–In Korean set gCountryName to retCountryNameInSpecifiedLocale("GE", "hi") of me –> "जॉर्जिया" –In Hindi set hCountryName to retCountryNameInSpecifiedLocale("GE", "th") of me –> "จอร์เจีย"-In Thai set iCountryName to retCountryNameInSpecifiedLocale("GE", "el_GR") of me –> "Γεωργία"–In Greek –指定の国名コードから国名を現在のロケールでローカライズして返す on retCountryNameInCurrentLocale(isoCode as string) set curLocale to current application’s NSLocale’s currentLocale() set aLocLangCode to (curLocale’s objectForKey:(current application’s NSLocaleLanguageCode)) as string set aCountry to curLocale’s displayNameForKey:(current application’s NSLocaleCountryCode) value:isoCode return aCountry as string end retCountryNameInCurrentLocale –指定の国名コードから国名を指定のロケールでローカライズして返す on retCountryNameInSpecifiedLocale(isoCode as string, targLocale as string) set curLocale to current application’s NSLocale’s localeWithLocaleIdentifier:targLocale set aLocLangCode to (curLocale’s objectForKey:(current application’s NSLocaleLanguageCode)) as string set aCountry to curLocale’s displayNameForKey:(current application’s NSLocaleCountryCode) value:isoCode return aCountry as string end retCountryNameInSpecifiedLocale |