指定アプリケーションが対応している各ローカライズ言語におけるアプリケーション名称を取得して、言語名をcurrent localeに合わせて変換しつつCSV出力してNumbersでオープンするAppleScriptです。
アプリケーションバンドルを調査して、ローカライズ対応している言語の一覧を取得するプログラムは組んでありました。そのローカライズを順次調べて、InfoPlist.stringsファイルを読み込み、CFBundleNameのエントリを調べています。
これで、その言語向けにローカライズされた「名称」を調べられます。あとは、言語コードを名称に変換する処理(これも、ありもの)を組み合わせて、2次元配列(2D list)にまとめあげ、CSV書き出しして(ありもの)、Numbersでオープンしただけのものです。
言語名称については、currentLocaleを利用しているため、日本語環境で実行すれば日本語表現で出力されますし、英語環境で実行すれば英語表現で出力されます。
実際に、書籍に掲載する資料用のデータを作成するときに使ってみました。
言語 | Code | 「地図」アプリのローカライズ名称 |
ドイツ語 | de | Karten |
ヘブライ語 | he | מפות |
英語(オーストラリア) | en_AU | Maps |
アラビア語 | ar | الخرائط |
ギリシャ語 | el | Χάρτες |
日本語 | ja | マップ |
英語 | en | Maps |
ウクライナ語 | uk | Карти |
スペイン語(ラテンアメリカ) | es_419 | Mapas |
中国語(中国本土) | zh_CN | 地图 |
スペイン語 | es | Mapas |
デンマーク語 | da | Kort |
イタリア語 | it | Mappe |
スロバキア語 | sk | Mapy |
ポルトガル語(ポルトガル) | pt_PT | Mapas |
マレー語 | ms | Peta |
スウェーデン語 | sv | Kartor |
チェコ語 | cs | Mapy |
韓国語 | ko | 지도 |
広東語(中国本土) | yue_CN | 地图 |
ノルウェー語 | no | Kart |
ハンガリー語 | hu | Térképek |
中国語(香港) | zh_HK | 地圖 |
トルコ語 | tr | Harita |
ポーランド語 | pl | Mapy |
中国語(台湾) | zh_TW | 地圖 |
英語(イギリス) | en_GB | Maps |
ベトナム語 | vi | Bản đồ |
ロシア語 | ru | Карты |
フランス語(カナダ) | fr_CA | Plans |
フランス語 | fr | Plans |
フィンランド語 | fi | Kartat |
インドネシア語 | id | Peta |
オランダ語 | nl | Kaarten |
タイ語 | th | แผนที่ |
ポルトガル語 | pt | Mapas |
ルーマニア語 | ro | Hărți |
クロアチア語 | hr | Karte |
ヒンディー語 | hi | नक़्शा |
カタロニア語 | ca | Mapes |
AppleScript名:指定アプリケーションの各言語のローカライズ名称を取得して、言語名をローカライズしてNumbersに出力.scptd |
— – Created by: Takaaki Naganoya – Created on: 2022/02/04 — – Copyright © 2022 Piyomaru Software, All Rights Reserved — use AppleScript version "2.4" — Yosemite (10.10) or later set targFile to "InfoPlist.strings" set aLocale to (current application’s NSLocale’s currentLocale()) set aLoc to path to applications folder set aBundle to getBundleFromPath(anApp) of me set aLocList to getSpecifiedAppFilesLocalizationListWithDuplication(aBundle) of me set hitList to {} repeat with i in aLocList –一時ファイルをCSV形式でデスクトップに書き出し –書き出したCSVファイルをNumbersでオープン –Application path –> Bundle –指定Bundleのローカライズ言語リストを求める。重複を許容 on getLangNameWithLocale(langCode, aLocale) –2D List to CSV file on writeToFileAsUTF8(this_data, target_file, append_data) on repChar(origText as text, targChar as text, repChar as text) |