スポンサーサイト

0

    一定期間更新がないため広告を表示しています


    • 2014.12.23 Tuesday
    • -
    • -
    • -
    • -
    • -
    • by スポンサードリンク

    Symfony2の自作バンドルでi18nを使うには

    0
      1.設定ファイルを編集する

      #app/config/parameters.yml
      locale: ja

      #app/config/config.yml
      translator:      { fallback: %locale% }のコメントアウトを外す

      2.言語ファイルを作る
      #バンドル/Resources/translations/messages.ja.xlf
      app/consoleで作ったバンドルには同じ位置にmessages.fr.xlfが初期状態で含まれているのでファイル名を.fr.xlfから.ja.xlfに変更。
      中身に翻訳させたい内容(英語のメッセージ→日本語のメッセージ)を書く。
      その際trans-unitはidが必須になったらしいので注意。(id=""で書くとエラーになった)

      3.テンプレートで翻訳を使うよう指定する
      変数
      {{ value|trans }}
      固定のメッセージ
      {{ "Some message"|trans }}
      パラメータを渡す
      {{ "Hello %name%"|trans({'%name%' : 'foo'}) }}
      使う言語ファイルを指定する
      {{ "Name"|trans({}, 'form_customer') }}


      phpのインストール(改めて)メモ。

      0
         phpが必要な拡張込みで予めセットアップされているレンタルサーバーやPaasを使えるときは良いのですが、やはり一からVPSや専用サーバーにPHP+必要な拡張を手動でソースからインストールする場面はまだまだあります。
        毎回必要な拡張を入れるのに必要なconfigureオプションは何だっけ?とphpマニュアルを小一時間(下手したら数日にわたって)彷徨うことになります。パス指定しなければいけないオプションでここに何を指定すればいいんだっけ?とパニックになることもしばしばありますorz

        そこで、PHPとだいたい必要な拡張を入れるためのオプション&指定内容を書いておきたいと思います。
        半分は自分用メモの用途です。ハイ。

        * mysql(mysql_*関数)
        --with-mysql
        mysqlndを使う場合は--with-mysql=mysqlnd
        通らない場合は--with-mysql=[DIR] libmysqlclient.soのあるパス
        あと参考として→http://d.hatena.ne.jp/lion_and_perican/20110207/p1

        * postgresql(pg_*関数)
        --with-pgsql
        これで通らない場合は--with-pgsql=[DIR] pg_configのあるパス

        * xml(DOMDocument,SimleXML)
        php5.1.2以降ならデフォルトで有効

        * pdo
        sqliteはデフォルトで有効。その他はオプションで有効にする必要あり。
        --with-pdo-pgsql
        --with-pdo-mysql
        通らない場合は
        --with-pdo-pgsql=[DIR] pg_configのあるパスを指定
        --with-pdo-mysql=[DIR] libmysqliclient.soのあるパスを指定

        * zlib
        --with-zlib

        * マルチバイト文字列(mbstring_*関数)
        --enable-mbstring

        * 画像処理.。o(これが毎回鬼門なんだな)
        --with-gd
        --with-jpeg-dir=[DIR] cjpeg,djpeg,jpegtransのあるパスを指定
        --with-png-dir=[DIR] libpng-configのあるパスを指定
        --with-freetype-dir=[DIR] freetype-configのあるパスを指定
        ※3つともyumで入れた場合は/usr/binにあった


        Symfony2のdoctrine:generate:crudではまりやすいところ

        0
          久しぶりにここに記事書きます^^
          ついに!業務でSymfony2を使えることになりました!いえーい!!

          というわけで、さっそくdoctrine:generate:crudを使いまくってます。
          で、個人的にはまりやすいところをいくつかメモです。(書いておかないと次にやるとき忘れる…)

          ■Configuration formatはbundle自体のConfiguration formatに合わせる
          bundleのConfiguration fotmatをymlにしてしまったら素直にymlを選んだほうがいいです。
          一回ポンポンエンターキーを押してたら、bundleがymlなのにも関わらずannotationにしてしまい、あれこれググってもうまくimportさせることができませんでした。

          ■routingのauto updateは必ず失敗する
          そのため必ず手動でResources/config/routing.ymlの変更が必要(ymlにしてる場合)
          去年の12月のSymfony勉強会のハンズオンでも聞いてたのでそれほど焦らず(笑)

          ■update,deleteのHTTPメソッド
          まず、Tests/Controllerにできる機能テストスケルトンのコメントアウトを外してそのまま実行すると必ず失敗します。
          デフォの更新・削除画面をそのまま操作しても必ずエラーになります。
          generate:crudが吐き出すviewではupdateがPUT、deleteがDELETEメソッドになるように書いてある(hiddenでname="_method"が書かれている)にも関わらず、routingがどちらもpostと指定されているからです。
          これはわざとそうなってるのか、2.1.0のバグなのかわかりません。
          従って、generate:crudが終わったらまず、edit.html.twigとshow.html.twigを開いてPUT,DELETEのhiddenを消す、又はrouting側の指定をput,deleteに変更する必要があります。
          自動生成されるコントローラを見る限り、特にHTTPメソッドが変わることによって処理が分岐することはないので、私はPUT,DELETEのhiddenを消してpostで処理するようにしました。

          ■viewにHTMLタグが無い
          生成されたtwigテンプレート達に{% extends "::base.html.twig" %}{% block body %}{% endblock %}をコピペするお仕事をやるだけです。←なにか自動化できないものか…
          ちなみにバンドルごとに違うbasehtmlを使いたいときは::base.html.twigでなく
          src/Acme/DemoBundle/Resources/views/base.html.twig → AcmeDemoBundle::base.html.twig
          みたいな感じで参照できました。




          1

          PR

          calendar

          S M T W T F S
              123
          45678910
          11121314151617
          18192021222324
          252627282930 
          << November 2012 >>

          twitter

          selected entries

          categories

          archives

          recent comment

          • djangoテンプレート上でmodelのメソッドに引数を渡す方法(djangoで出勤簿アプリ試作中♪)
            GavannITサービス-なりとみ
          • 私がそれでも名古屋市に住み続ける理由を6つにまとめてみた!
            bose wireless speaker
          • FastCGIでdjango…400エラー???
            levi's
          • さくらインターネットdjangoが突然500エラー!?(Pythonバージョンアップされてた
            salomon running shoes
          • 私がそれでも名古屋市に住み続ける理由を6つにまとめてみた!
            louboutin shoes
          • FastCGIでdjango…400エラー???
            yeezy boost 350
          • さくらインターネットdjangoが突然500エラー!?(Pythonバージョンアップされてた
            jordan 11
          • Silexでエラーページをカスタマイズする方法 : Symfony Advent Calendar 2011 - day 12
            pandora jewelry
          • django対symfony 日本語メール送信(その1 symfony編)
            nike air vapormax
          • 解決!XREAでCGI版Pythonを使ってdjangoを動かす(人柱?)
            kate spade

          recent trackback

          • HTMLの表(TABLE)のセル(TD)に斜線を引くjavascriptライブラリ slash.js 作っちゃいました
            常山日記
          • django対symfony 日本語メール送信(その1 symfony編)
            CPA-LABテクニカル
          • CodeIgniterでユーザー認証
            されどLAMPな日々
          • 久々にdjangoを最新版にしたらHTMLがエスケープされちゃった!!(解決済み)
            常山日記
          • FastCGIを諦めてmod_pythonを使う。Apacheのアップグレード
            サーバー用語集
          • さくらインターネット、sqlite3でdjango@CGI版を使う際の設定メモ
            常山日記
          • さくらインターネット スタンダードプランでdjango使ってる方、DBは?
            mitszoの日記
          • python多次元リストをsort(並べ替え)する方法?
            mitszoの日記
          • フォームから送信した値とrequest.POSTの挙動($_POST@PHPとの比較)
            Humming Via Kitchen
          • 日本語テキストをtruncate@django(Python全般にも??)
            常山日記

          recommend

          links

          profile

          search this site.

          others

          mobile

          qrcode

          powered

          無料ブログ作成サービス JUGEM