Cyberduck 日本語の2つの意味|画面の言語と文字化けの直し方
「Cyberduck 日本語」という言葉で検索している人は、じつは2つの別々の困りごとを抱えています。1つは画面のメニューが英語で読みにくいという話。もう1つは、サーバに置いた日本語のファイル名が記号の羅列になって表示されるという話です。この2つは設定する場所も、直せる条件も違います。しかも後者は、使っているプロトコルによっては設定項目そのものが存在しません。どちらの話なのかを先に切り分けると、無駄な設定探しをしなくて済みます。
画面のメニューを日本語にする場所は環境設定の中にある
まず表示の言語です。Cyberduckのヘルプは、ユーザーインターフェースの言語を環境設定から選べると説明しています。初期値は「Default」で、この状態ではシステムの言語に従います。
macOSでの選ばれ方も公式に書かれています。システム側の言語リストの中で、Cyberduckが持っている翻訳と最初に一致した言語が採用される仕組みです。つまり、システムの優先言語が日本語になっていれば、Cyberduckは何もしなくても日本語で起動します。逆に、英語が優先の環境で日本語だけを日本語にしたい場合は、環境設定のLanguageで明示的に選ぶことになります。
うまく日本語にならないときに疑う場所は3つです。
- システムの優先言語の並び順。上から順に一致を探すので、英語が日本語より上にあると英語が選ばれます
- 環境設定のLanguageが「Default」以外に固定されていないか
- アプリを再起動したか。言語の切り替えは起動時に決まるため、選んだ直後の画面には反映されません
macOSの側の言語の設定は世代によって場所が変わります。お使いのmacOSでの手順はAppleのサポートから自分の版のものを見るのが確実です。
環境設定の中身も先に把握しておくと、探しものが速くなります。ヘルプが挙げている区分は、General、Bookmarks、Browser、Transfers、Editor、Profiles、Protocols、Bandwidth、Connection、Cryptomator、Use Keychain、Language、Updateです。Languageは後ろのほうにあり、その手前のProtocolsの中にプロトコルごとの設定がまとまっています。文字コードの設定を探している人がLanguageの欄を開いてしまうのは、名前が近いので自然なことですが、場所が違います。言語は画面の言葉、文字コードはProtocolsの下のFTPの中です。
対応言語の数は公式の2か所で違う数字が出ている
ここで1つ、混乱しやすい点があります。対応している言語の数について、公式の記載が2か所で食い違っています。
ヘルプのドキュメントには、30の翻訳が含まれると書かれています。一方、Mac App Storeの情報欄には37言語と記載があり、日本語がその先頭に挙げられています。並んでいるのは日本語、英語、ドイツ語、フランス語、イタリア語、スペイン語、ポルトガル語、オランダ語、ロシア語、ウクライナ語、ポーランド語、チェコ語、スロバキア語、スロベニア語、クロアチア語、セルビア語、ブルガリア語、ルーマニア語、ハンガリー語、ギリシャ語、トルコ語、アラビア語、ヘブライ語、タイ語、タミル語、簡体字中国語、繁体字中国語、韓国語、デンマーク語、スウェーデン語、ノルウェー語、フィンランド語、エストニア語、ラトビア語、カタロニア語、ウェールズ語、グルジア語です。
数え方の違いなのか、ドキュメントの記載が更新されていないのかは公式に説明が見当たりません。ただ、実務で必要な事実は1つだけです。日本語の翻訳は含まれていて、追加の購入も設定ファイルの編集も必要ありません。無料で配布されている版でも同じです。
日本語のファイル名が化けるときに触る場所は3つある
もう1つの困りごとに移ります。サーバのフォルダを開いたとき、日本語のファイル名が読めない文字の並びになる場合です。これは表示の言語とは無関係で、文字エンコーディングの設定の話になります。
公式サイトはこの機能をこう説明しています。
Works with any character encoding for the correct display of Umlaute, Japanese and Chinese. 出典: cyberduck.io
日本語を名指しで挙げているとおり、対応そのものはあります。問題は、どのエンコーディングを使うかをこちら側が指定する必要があるという点です。ヘルプによると、指定できる場所は3つあります。
1つ目は環境設定です。FTPの項目の中にText Encodingがあり、ここで選んだものが既定になります。サーバから送られてくるフォルダの一覧に含まれるファイル名を、どの文字コードとして解釈するかの指定です。
2つ目はブックマークごとの設定です。ブックマークの編集画面にEncodingの欄があり、接続先ごとに別のエンコーディングを持たせられます。社内のサーバと外部のレンタルサーバで文字コードが違う場合は、こちらで分けるのが正しい形です。
3つ目は、接続したあとのその場での切り替えです。メニューのViewからText Encodingを選ぶと、開いている画面のエンコーディングだけを変えられます。試しながら当てていくときはここが早いです。
公式が例として挙げている候補は、既定のUTF-8、それにISO-8859-1とWindows-1252の3つです。これはヨーロッパの言語を想定した並びで、日本語のファイル名を扱うサーバで必要になる文字コードが例示されているわけではありません。選択肢の一覧そのものには他の文字コードも並んでいますが、どれを選ぶべきかについての公式の案内は見当たりません。実際には、接続先のサーバがどの文字コードでファイル名を保存しているかを管理者に確認するか、Viewから順に切り替えて読めるものを探すことになります。
エンコーディングを直せるのはFTPだけ
ここがこの記事でいちばん伝えたい部分です。ヘルプのFTPの項を読むと、文字エンコーディングの設定は「FTP接続のみ」と明記されています。ブックマークの設定項目の説明でも、Encodingの欄はFTP専用だと書かれています。
つまり、SFTPで接続していて日本語のファイル名が化けている場合、Cyberduckの中に触れる設定はありません。Amazon S3でも、WebDAVでも、Dropboxでも同じです。設定を探して見つからないのは、探し方が悪いからではなく、その設定が存在しないからです。
同じ作りになっている項目がもう1つあります。タイムゾーンです。FTP以外のすべてのプロトコルでは、サーバから協定世界時で時刻が返ってくるので設定は要らず、画面には自動でお使いの地域の時刻に変換されて表示されます。FTPだけは事情が違い、設定が必要になります。FTPという古い規格が、文字コードも時刻も規格として決めていないことの表れです。
この事実から、次の行動が決まります。
- FTPで化けている場合。3か所のどこかでエンコーディングを変えれば直る可能性がある
- SFTPやS3で化けている場合。Cyberduck側では直らないので、原因をサーバ側かファイル名そのものかに絞り込む必要がある
後者のほうが実際には多いはずです。今の時点で新しく作るサーバはSFTPが標準なので、FTPを使い続けている環境自体が減っているからです。
一覧が出ない、途中で止まるのは文字化けとは別の原因
日本語の名前を含むフォルダで症状が出ていると、すべてを文字コードのせいにしてしまいがちです。ところがヘルプのFTPのページには、文字エンコーディングとは別に既知の問題が並んでいます。挙がっているのは、フォルダの一覧が失敗するか中身が空で表示される、同時接続の数の上限、データ用のソケットを開くときのエラー、権限の変更ができない、更新日時の扱い、といった項目です。
このうち一覧が出ない症状は、接続モードが原因であることが多い種類の問題です。FTPにはアクティブ(PORT)とパッシブ(PASV)の2つの接続モードがあり、Cyberduckではブックマークごとに、あるいは新しく接続を開くときに選べます。既定の値はmacOSのシステム側のネットワークの設定にあるパッシブモードの項目で決まります。ルーターやファイアウォールの都合でどちらかしか通らない環境は珍しくないので、一覧が空のときはまずここを疑います。
サーバの製品による注意点も書かれています。ProFTPdでは特定のオプションの指定がFTP over TLSの接続に必要だとされ、vsFTPdにも同様の記載があります。文字化けとこれらの症状が同時に出ている場合、直す順番は接続が安定するほうが先です。一覧がまともに取れていない状態で文字コードを切り替えても、何が変わったのか判断できません。
化けているのが表示だけなのか、名前そのものなのかを切り分ける
SFTPで化けていた場合の切り分けに進みます。確かめるべきなのは、化けているのが手元の表示だけなのか、サーバに保存されている名前そのものなのかです。
判断の方法は1つしかありません。別の経路で同じフォルダを見ることです。サーバにSSHで入って一覧を出せば、ファイル名の実体が分かります。そこで正しく日本語が出るなら手元の表示の問題、そこでも同じように化けているならファイル名そのものが壊れています。
前者ならクライアント側で直せます。後者は名前を付け直すしかありません。しかも壊れた名前のまま名前を変更しようとすると、コマンドで扱いにくい文字が混ざっていて手が止まることもあります。この段階では、ファイル管理の画面を見ながら、同時にコマンドを打つ必要が出てきます。
ここで起きているのが典型的な行き来です。Cyberduckの窓でファイルの一覧を見て、ターミナルの窓に切り替えてSSHでつないで一覧を出し、見比べて、またCyberduckに戻る。壊れた名前を検索して直し方を調べるならブラウザも開きますし、文字コードの変換の書き方をAIに聞くならその窓も開きます。転送の道具としては何も悪くないのに、切り分けの段になると4つの窓を往復することになります。
文字化けの調査は、道具の置き方の問題でもある
文字コードの不一致は、設定の知識があれば解ける種類の問題です。それでも時間がかかるのは、知識が足りないからではなく、確かめる場所と直す場所が別のアプリに分かれているからです。フォルダの一覧とコマンドの出力を同時に見られれば、切り分けは数分で終わります。
ファイル管理とターミナルとAIを最初から同じ窓に置く作りの道具もあります。何ができるのかを目的の側から並べたできることのページを見ると、機能の数ではなく行き来の回数を減らすという考え方で組まれているのが分かります。転送に特化したツールとの役割の違いは他のファイル管理との比較に整理してあります。画面の言葉をどの言語で出せるのかは対応言語にまとめてあり、日本語で使い続けられるかどうかはここで確かめられます。
最後に、この記事の要点を行動の形に直しておきます。画面が英語なら、システムの優先言語の並びを確かめてから環境設定のLanguageを見る。ファイル名が化けているなら、まず接続がFTPかどうかを確かめる。FTPならViewのText Encodingで順に試す。FTP以外なら、Cyberduckの設定を探すのはやめて、SSHで一覧を出して名前の実体を確かめる。この順で進めれば、どちらの「日本語」の問題も迷わずに片付きます。
よくある質問
Cyberduckの画面を日本語にできますか?
できます。日本語の翻訳は最初から含まれていて、追加の購入は必要ありません。初期状態ではシステムの言語に従うので、macOSの優先言語が日本語なら自動的に日本語になります。英語で起動する場合は環境設定のLanguageで日本語を選び、アプリを再起動してください。
日本語のファイル名が記号の羅列になります。どこを直せばよいですか?
FTPで接続している場合は、メニューのViewからText Encodingを切り替えると画面のエンコーディングが変わります。恒久的に変えたい場合はブックマークのEncodingの欄か、環境設定のFTPの項目で指定します。既定はUTF-8です。
SFTPで文字化けしています。設定が見つかりません。
文字エンコーディングの設定はFTP接続のみに用意されています。SFTP、Amazon S3、WebDAVなどには設定項目自体が存在しません。この場合はサーバにSSHで入って一覧を出し、ファイル名の実体が壊れているのか手元の表示だけの問題なのかを切り分けてください。
対応言語の数が30と37で違うのはなぜですか?
ヘルプのドキュメントには30の翻訳が含まれると書かれ、Mac App Storeの情報欄には37言語と記載があります。この差についての公式の説明は見当たりません。どちらにも日本語は含まれているので、日本語で使うかどうかの判断には影響しません。