問題タブ [mason]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
perl - Perl/Mason i18n の文字列抽出を自動化する方法は?
私は現在、非常に大規模な Perl/ Mason Web アプリケーションの国際化に取り組んでいます。このアプリケーションは 20 年近く経ち、比較的古風な Perl スタイルで書かれています。Moose や別のオブジェクト指向モジュールは使用しません。現在、Locale::Maketext::Gettextを使用してメッセージを検索し、GNU Gettext カタログ ファイルを使用することを計画しています。
bigass コードベースから文字列を抽出するためのツールをいくつか開発しようとしています。現在、私が持っているのは、文字列リテラルを探してソースを解析し、ユーザーにコンテキストと文字列を翻訳用にマークする必要があるかどうかを尋ね、そうであればマークする比較的単純な Perl スクリプトだけです。
マークする必要のある文字列と、無視できる文字列に関しては、あまりにも多くのノイズがあります。ソース内の多くの文字列は、ハッシュ キーや次のような型比較など、ユーザー向けではありません。
提案された各文字列にいくつかのヒューリスティックを適用して、すぐに無視できるかどうかを確認します (たとえば、ハッシュ ルックアップに使用される文字列は無視します。これは、コードベースでは 99% の時間、これらはユーザーに面していないためです)。しかし、それにもかかわらず、私のプログラムが表示する文字列の約 90% は、私が気にしないものです。
文字列抽出のタスクを自動化するのに役立つより良い方法はありますか (つまり、ソースからすべての文字列リテラルを取得するよりもインテリジェントなもの)? Perl と Mason の両方のソースを処理できる商用プログラムはありますか?
また、私は優れたツールについて (かなりばかげた) アイデアを思いつきました。そのワークフローを以下に示します。このようなものを実装する努力をする価値があるでしょうか (おそらく作業の 80% を非常に迅速に処理できます)、それとも面倒で煩わしい手動の文字列抽出プロセスに従うべきでしょうか?
- ソースからすべての文字列リテラルを抽出し、それを Gettext PO ファイルに入れることから始めます。
- 次に、Mason プラグインを作成して、アプリケーションによって提供される各ページの HTML を解析し、ユーザーが見ている文字列に注目することを目標にします。
- アプリケーションを徹底的に使用し、すべてのユースケースをカバーして、ユーザー向けの文字列のストアを構築してください。
- ユーザーが見たこの文字列のストアを考慮して、カタログ ファイル内の文字列に対してあいまい一致を実行し、一致するカタログ エントリを UI から追跡します。
- 最後に、カタログ ファイル内で一致しなかったものはユーザー向けではない可能性が高いため、それらをカタログから削除します。
perl - perl Mason Framework でのグローバル変数の定義
最近、問題に遭遇しました: perl Mason Framework でグローバル変数を定義する方法は? 変数を定義し、すべての Mason コンポーネントから見える値を変数に割り当てる必要がありますが、コンポーネントが変数を認識しないと通知するため、すべての試みがたまたま失敗します。
前もって感謝します。
perl - perl/mason: handler.pl のグローバル変数に値を割り当てる
でグローバル変数に値を割り当てることは可能handler.pl
ですか?
のグローバル変数に値を割り当て、handler.pl
Mason コンポーネントから値を取得する必要があります。
私はこの方法を試しました:
httpd.conf
handler.pl
何かマス
しかし、それは機能していません。返されません<h1>test</h1>
が、未定義の<h1></h1>
ようです。$x
どうすればそれを機能させることができますか?
perl - html::masonを使用したセッション状態の管理
私はプロジェクトでHTML::Mason
withApache2 mod_perl2
を使用していますが、セッション状態を簡単に管理するための良い方法がわかりません。
Catalystを使用するとは言わないでください。私は通常そうしますが、今回はそうではありません。
node.js - joose/javascript ベースの mason2 のようなサーバー側テンプレート
node.js 用のPerlish Mason2テンプレートのようなものはありますか? 次の機能を備えたものを意味します。
- コンポーネントベースのアーキテクチャ (!!!) (autohandlers、dhandlers (Base.mc) を使用)
- オンザフライでソース (コンポーネント) をフル機能の joose (javascript) オブジェクトにコンパイル
- プラグイン (キャッシュなど)
perl - mod_perl 設定で複数のロケール間で衝突しますか?
私は現在、大規模な Perl/Mason Web アプリケーション (Perl 5.8.0、Mason 1.48、mod_perl & Apache) の国際化に取り組んでいます。ローカリゼーション モジュールを選択する際に、私はLocale::Maketext ではなく Locale:: TextDomainを使用することにしました。これは主に、後者の複数形のサポートが私が望むほど良くないためです。
私が Locale::TextDomain で抱えているハングアップは、プロセスのロケールに基づいて翻訳に使用するカタログを解決することです。これに気付いたとき、ユーザーが異なるロケールを使用できるようにしたい場合、これがアプリケーションにどのように影響するか心配になりました。あるユーザーの設定に合わせてロケールを変更すると、別のユーザーのセッションに影響する可能性はありますか? たとえば、ドイツ語のユーザーのセッションがプロセスのロケールを変更したために、英語のユーザーがドイツ語のページを受け取ったという状況はあり得ますか? 私は Apache のスレッド/プロセス モデルがどのように機能するかについてあまり詳しくありませんが、同じスレッドで複数のユーザーにサービスを提供できる場合、これが発生する可能性があるようです。
この電子メール スレッドは、これが可能であることを示しています。ここで、OPは私が考えている状況を説明しています。
これが本当なら、Locale::TextDomain を使用している間にこのシナリオを防ぐ方法はありますか? モジュールをハックして、ロケールに依存しない (おそらく DBD::PO を使用して) カタログをロードできると思いますが、うまくいけば、私の問題を解決する何かが欠けているだけです...
authentication - 別のサブドメインからサブドメインにログインする
私は 1 つのサイトを持っておりparent1.site.com
、ログインしており、ドメインの認証 Cookie を持っていますparent1.site.com
。
たとえば、別のサイトに自動的にログインするために、そのCookieを使用できる方法はありますparent2.site.com
か?
の認証クッキーのドメインを変更できないとしparent1.amazon.com
ます。parent2.amazon.com
asのデフォルト ドメインを設定しようとしましたparent1.amazon.com
が、うまくいきません。
どんな助けにも感謝します。
perl - Perl Std->href フォーマット
一部の検索パラメーターがデフォルトで 365 日の時間範囲になるように、リンクをハード コードするように依頼されました。
perl では、 を使用しStd->href(url)
て URL を生成しています。
私の質問は:
この時間範囲をデフォルトにするには、URL に次を追加する必要があります。eventDateOption=365#orderAscending=
しかし、追加するたびに # タグが %23 などに置き換えられます。この置き換えが起こらないようにする方法があるかどうか疑問に思っています。
html - $m->comp が無限再帰呼び出しエラーを返しています
HTML::Mason を使用し$m->comp
てあるビューから別のビューにリダイレクトするのに問題があります。
にリダイレクトするために使用しfile1.mi
ている、これに HTML コードが埋め込まれたというファイルがあります。file1.mi
$m->comp
file2.mi
しかし、ウェブページfile1.mi
が読み込まれるたびにフッターが複数回印刷され、ログにエラーが表示されます
ネストされたページ フレームワーク アプリケーションのディスパッチが検出されました。この使用法は完全にはサポートされておらず、予期しない動作が発生する可能性があります
と
エラー: APPLICATION CONTEXT ERROR (RENDER): コンポーネント スタックの深さが 32 レベル (無限の再帰呼び出し?)
. これは、リダイレクトに使用しているスクリプトですfile1.mi
file1.mi
Web ページをレンダリングする前、つまり HTML スクリプトが実行される前に、このスクリプトを使用しています。
私は Mason を初めて使用します。これについて質問がある場合は、どうぞお進みください。
security - ハンドラーでHTML::Mason引数をサニタイズしますか?
私はを使用してHTML::Mason
いますが、最近のセキュリティ監査の結果、一部のソフトウェアがヘッダーインジェクションに対して脆弱であることが判明しました。具体的にはsession_id
、これは引数に関連しており、引数は渡されてGET
要求されPOST
ます。
handler()
カスタムハンドラーからメソッドの環境を変更しようとしましたが、Apache2::RequestRec
はすでに作成されているため、変更を取得しません。
ハンドラーレベルですべての入力をHTML::Masonにサニタイズする良い方法はありますか?