问题标签 [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 或其他 OO 模块。我目前正计划使用Locale::Maketext::Gettext进行消息查找,并使用 GNU Gettext 目录文件。
我一直在尝试开发一些工具来帮助从我们的 bigass 代码库中提取字符串。目前,我所拥有的只是一个相对简单的 Perl 脚本,用于通过源代码解析以查找字符串文字,提示用户一些上下文以及是否应将字符串标记为翻译,如果是则标记它。
我需要标记的字符串与我可以忽略的字符串相比,噪音太大了。源中的许多字符串不是面向用户的,例如哈希键,或类型比较,例如
我确实对每个提议的字符串应用了一些启发式方法,看看我是否可以立即忽略它(例如,我忽略了用于哈希查找的字符串,因为在我们的代码库中,99% 的时间这些字符串不是面向用户的)。然而,尽管如此,我的程序显示给我的大约 90% 的字符串是我不关心的。
有没有更好的方法可以帮助自动化我的字符串提取任务(即比从源代码中获取每个字符串文字更智能的方法)?是否有任何商业程序可以同时处理 Perl 和 Mason 源代码?
另外,我有一个(相当愚蠢的)关于一个优秀工具的想法,我把它的工作流程放在下面。是否值得付出努力来实现这样的事情(这可能会很快处理 80% 的工作),还是我应该接受一个费力、烦人的手动字符串提取过程?
- 首先从源中提取每个字符串文字,并将其放入 Gettext PO 文件中。
- 然后,编写一个 Mason 插件来解析应用程序所服务的每个页面的 HTML,目的是记录用户正在查看的字符串。
- 使用该应用程序并尝试涵盖所有用例,建立一个面向用户的字符串存储。
- 给定用户看到的字符串存储,对目录文件中的字符串进行模糊匹配,并跟踪与 UI 匹配的目录条目。
- 最后,目录文件中未匹配的任何内容都可能不是面向用户的,因此请从目录中删除这些内容。
perl - 在 perl Mason 框架中定义全局变量
我最近遇到一个问题:如何在 perl Mason Framework 中定义一个全局变量?我需要定义一个变量并为其分配一个值,该值将从所有 Mason 组件中可见,但我所有的尝试都碰巧不成功,因为组件告诉他们看不到该变量。
提前致谢。
perl - perl/mason:为 handler.pl 中的全局变量赋值
是否可以将值分配给 中的全局变量handler.pl
?
我需要为 in 中的全局变量赋值handler.pl
,并从 Mason 组件中获取该值。
我试过这样:
httpd.conf
处理程序.pl
东西.mas
但它不起作用,它不会返回<h1>test</h1>
,但就像<h1></h1>
未定义一样$x
。我怎样才能让它工作?
perl - 使用 html::mason 管理会话状态
我正在将HTML::Mason
withApache2 mod_perl2
用于一个项目,并且不确定什么是轻松管理会话状态的好方法。
请不要说使用催化剂。我通常会这样做,但这次不会。
node.js - joose/javascript 基于 mason2 之类的服务器端模板
是否存在类似Perlish Mason2的 node.js 模板?意味着具有以下功能的东西:
- 基于组件的架构(!!!)(带有自动处理程序,dhandlers (Base.mc))
- 即时将源代码(组件)编译成功能齐全的joose (javascript) 对象
- 插件(缓存等)
perl - mod_perl设置中多个语言环境之间的冲突?
我目前正在致力于国际化大型 Perl/Mason Web 应用程序(Perl 5.8.0、Mason 1.48、mod_perl 和 Apache)。在选择本地化模块时,我决定使用Locale::TextDomain而不是 Locale::Maketext,主要是因为后者的复数形式支持不如我想的那么好。
我对 Locale::TextDomain 的困扰是它根据进程的语言环境解析要用于翻译的目录。当我意识到这一点时,我担心如果我希望用户能够使用不同的语言环境,这将如何影响我的应用程序——改变语言环境以适应一个用户的设置是否会影响另一个用户的会话?例如,是否会出现这样一种情况:由于德国用户的会话更改了进程的区域设置,因此英语用户收到了德语页面?我不太了解 Apache 的线程/进程模型是如何工作的,尽管似乎如果多个用户可以由同一个线程提供服务,这可能会发生。
此电子邮件线程将表明这是可能的;在这里,OP描述了我正在考虑的情况。
如果这是真的,有没有办法可以在仍然使用 Locale::TextDomain 的同时防止这种情况?我想我总是可以破解模块以独立于语言环境(可能使用 DBD::PO)加载目录,但希望我只是错过了一些可以解决我的问题的东西......
authentication - 从另一个子域登录到子域
我有一个站点parent1.site.com
,并且我已登录并且我有域的身份验证 cookie parent1.site.com
。
有没有办法让我可以使用该cookie,例如自动登录另一个站点parent2.site.com
?
假设我无法更改身份验证 cookie 的域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
加载它都会多次打印页脚,并且在日志中我得到了错误
检测到嵌套页面框架应用程序调度,不完全支持此用法并可能导致意外行为
和
错误:应用程序上下文错误(渲染):组件堆栈深度为 32 级(无限递归调用?)
. 这是我用于重定向的脚本file1.mi
我在file1.mi
呈现网页之前使用此脚本——即在执行任何 HTML 脚本之前。
我对梅森有点陌生,如果您对此有疑问,请继续。
security - 在处理程序中清理 HTML::Mason 参数?
我正在使用HTML::Mason
,经过最近的安全审核,发现我们的某些软件容易受到标头注入的影响。具体来说session_id
,这与通过GET
和POST
请求传递的参数有关。
我试图handler()
从自定义处理程序修改我的方法中的环境,但是Apache2::RequestRec
已经创建了,所以它不会接受更改。
有没有一种好方法可以在处理程序级别清理所有输入到 HTML::Mason 中?