タグ

2017年3月13日のブックマーク (8件)

  • PHPのロケールに関するまとめ - hnwの日記

    5/3 17:45追記:t_komuraさんに指摘いただいた関数と、さらに僕が調べ直したものを含め、「ロケール設定に従う関数一覧」に25個ほど追加しました。かなり見落としがありましたね…。 PHPのロケール*1まわりについて調査したので、これをまとめてみます。 この記事は「ロケールの影響を受ける関数 - Sarabande.jp」を掘り下げたものです。masakielasticさん、ナイスな記事をありがとうございます。 PHPの文字列型と文字エンコーディング 他のモダンなLL言語と異なり、PHPは文字列の文字エンコーディングに関して何も仮定せず、単なるバイト列として管理しています。つまり、文字エンコーディングの取り扱いは各関数の実装に委ねられています。 下記の通り、これはマニュアルにも記述があるのですが、実に残念なことです。 残念ながら、PHP の各関数が文字列のエンコーディングを判断する

    PHPのロケールに関するまとめ - hnwの日記
    tohokuaiki
    tohokuaiki 2017/03/13
    あぁ、それでWordPressはsetlocaleじゃない方法を取ってるのか。“特にDebian系のLinuxディストリビューションではロケールが別パッケージになっていることもあり、ロケールなしで動作していることがあります”
  • PHP国際化プログラミング - gettextを使った国際化

    PHP国際化プログラミング gettextを使った国際化 PHPはgettextのメッセージ管理をサポートしているので、ユーザーロケールに基づいて、ラベルやメッセージのテキストを切り替えることができます。 以下は、World Wide NaviのPHPの文字列外部化のサンプルを使った、基的なgettextのステップです。 ローカライズする文字列をgettext関数に配置 ローカライズしたい文字列をgettext関数(殆どの場合、'_()')内に配置します。 これらの文字列は、各外部リソースファイルによってローカライズ(翻訳)されます。 echo "Hello from PHP!"; -> echo _("Hello from PHP!"); 初期化コードを記述 ユーザーロケール(言語と地域)を適用し、リソースの名前とパスをgettextの仕組みに教えます。 index.php (または他

    tohokuaiki
    tohokuaiki 2017/03/13
    moファイルを作るまでを詳細に
  • gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita

    はじめに 便利な GUI ツールたち 昨今では、翻訳をするにも、GUI なツールや、web ベースのフレームワークなんかがいろいろあったりして、下手をすると、コマンドラインを使わなくても翻訳作業ができたりします。 スタンドアローンのツールとしては、たとえば po エディターの Poedit があります。これは po だけでなく mo ファイルを書き出すことができます。KDE の Lokalize は、プロジェクト管理に使うことを想定しており、もっといろんな機能がついています。 web ベースのシステムとしては、3日目で紹介されている pootle 、6日目で紹介されている Transifex、10日目で紹介されている Translation wiki や、Launchpad などがあります。 一翻訳者としてなら、コマンドラインを一切使わずに作業することはふつうにあることでしょう。 コマンド

    gettext のコマンドラインツールを使おう: SuperTuxKart を例に - Qiita
  • How can I merge 2 .POT files (translation files)

    tohokuaiki
    tohokuaiki 2017/03/13
    複数のpotができた場合、“msgcat *.pot > all.pot ”で1つのpotにすることができる。そのpotを対象にmoを作ってやればいい。
  • 絶交した友人と5年ぶりに和解した

    1980年生まれ埼玉育ち。東京の「やじろべえ」という会社で編集者、ライターをしています。ニューヨーク出身という冗談みたいな経歴の持ち主ですが、英語は全く話せません。 前の記事:僕が「とんがらし」の天丼を愛する7の理由 > 個人サイト Twitter (@noriyukienami) 「どっちも自分が正しいと思ってるよ、戦争なんてそんなもんだよ」 かつて、とある傑物がこんな名言を残した。名をドラえもんという。彼なら、もつれた糸も秘密道具で容易くほぐしてしまうことだろう。 だが、5年におよぶ冷戦の火種となった出来事に関してはこちらに非はなく、いくらドラえもんでも譲るつもりはない。世界から戦争がなくならないわけだ。 僕としては、彼から折れてくれば、いつでも抱きしめる準備はできていた。しかし、一向にその気配はなく、「さてはあいつ、仲直りする気ねえな」と薄々気づき始めた今日この頃である。このままでは

    絶交した友人と5年ぶりに和解した
    tohokuaiki
    tohokuaiki 2017/03/13
    えっと、ひとりふたりさんにん・・・・途中で数えるのをやめた。。。
  • ウニ欲が満たされる1万円のウニ丼

    1988年神奈川県生まれ。普通の会社員です。運だけで何とか生きてきました。好きな言葉は「半熟卵はトッピングしますか?」です。もちろんトッピングします。(動画インタビュー) 前の記事:牛焼肉定で学ぶチームマネジメント ウニ。その見た目からは想像できないおいしさを秘めてるべ物。そして、それはある痛風の人にとっては禁断のべ物である。 だが、私は全然、痛風ではない。全く関係ない。ときどき足に違和感が出るが、それは疲れているからだし、当に違う。 そんな禁断のべ物ほど、魅力的なべ物はない。お腹いっぱいべたいのだ。そして、他の人からの「じゃあ行こうよ!」を期待して、以下のメッセージをfacebookに書き込んだ。

    ウニ欲が満たされる1万円のウニ丼
    tohokuaiki
    tohokuaiki 2017/03/13
    自分もウニ好きで、大人になったから箱ごと食べてやろうと買ったけど3分の1ほどで「あ、もういいや」ってなってしまった。童貞のままの方が良かったのかもしれない。
  • PHP: 無名関数・クロージャの即時実行

    即時関数 - JavaScript パターン PHP 5.3 で即時関数2014年7月24日追記。PHP 5 の次のメジャーバージョンである PHP 7 では call_user_func の代わりに () が使えるようになります(https://wiki.php.net/rfc/uniform_variable_syntax)。 $str = 'Good Morning'; (function() use ($str) { echo $str . PHP_EOL; })(); (function() use ($str) { $str = 'Good Evening'; echo '☆' . $str . '☆' . PHP_EOL; })(); 2013年6月1日追記。htmlspecialchars の処理を array_map に変更しました。 JavaScript の即時関数の用

    PHP: 無名関数・クロージャの即時実行
    tohokuaiki
    tohokuaiki 2017/03/13
    7だとJavaScriptライクな実行が可能。5ならcall_user_funcを使う。
  • 「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記

    自分の知らないCJK Ideographのバリエーションがまだあったことに戦慄している pic.twitter.com/kUlyRLDDTM— moriyoshit (@moriyoshit) March 9, 2017 などというツイートをしたところ、思ったより反響があったのでまとめておく。 上記ではあいまいに「バリエーション」などと書いたが、Unicodeとそれを扱う環境においては、バリエーションと一口に言っても次のような状況がある。 意味論的に等価な異なる字形の集合 同じ字形で異なるコードポイントの集合 aは結構なじみ深いと思う。 a-1. 異なるコードポイントにそれぞれ異なる字形が割り当てられているもの 例: 「東」(U+6771) ⇔「东」(U+4E1C) 「斉」(U+6589) ⇔「齊」(U+9F4A) 「高」(U+9AD8) ⇔「髙」(U+9AD9) a-2. 同じコードポイ

    「ユニコード」で予期せぬ目に遭った話 - moriyoshiの日記
    tohokuaiki
    tohokuaiki 2017/03/13
    “CJK Radicals”なんて文字セットがあるのか。「こんなの使うんかよ」って思ったけど、一覧見たら普通に言語学者とかは使いそうだな。