【问题标题】:CakePHP cache i18n translateCakePHP 缓存 i18n 翻译
【发布时间】:2012-11-11 04:48:03
【问题描述】:

当我忘记翻译某些内容时,在 Project VIEW 某处,我更改文件 /app/Locale/por/LC_MESSAGES/default.po 并将其发送回服务器。

但大多数情况下,这个'新翻译',需要几个小时才能查看,简而言之:我只是发送文件,清理缓存和浏览器 CakePHP,按 F5,然后... 什么都没有发生

什么原因?

[编辑]

<?php echo $this->Form->input('Item.0.description', array('label' => false, 
'class' => 'span12', 'div' => array('class' => 'span7'), 'rows' => 3,
'placeholder' => __('Type the description'))); ?>

【问题讨论】:

  • 所有缓存(app/tmp/)和浏览器缓存。

标签: php cakephp caching internationalization


【解决方案1】:

要强制更新语言,您可以清除/tmp/cache 目录中的persistentmodels 目录。如果启用了视图缓存,您还必须清除 views

debug 设置为2(这是在开发期间使用框架的值)并且persistent 目录填充了新的缓存文件时,缓存被禁用,每次视图被覆盖时覆盖旧的缓存文件加载。因此debug 开关和随后的浏览器刷新可能会为您清除旧语言文件。

【讨论】:

  • 谢谢我的朋友。就是这样!
  • 在 linux 上这个命令可能很方便(从应用程序目录运行)find app/tmp/cache -type f -delete - 它会从缓存中删除所有文件
【解决方案2】:

我找到了一个奇怪的解决方案:

我设置(app/Config/core.php)...

Configure::write('debug', 2); // It was 0

按,F5... 等待... 开始工作。 后来,我回来了……

    Configure::write('debug', 0);

再次按 F5 即可。

为什么?我不知道。

【讨论】:

  • 因为开启调试会改变默认缓存持续时间从~forever to 10 seconds
  • @AD7six 是的,就是这样。谢谢先生!
  • 完美运行!谢谢1
【解决方案3】:

即使Configure::write('debug', 2); 我建议删除包含翻译的远程文件夹,用浏览器刷新(说明不再翻译任何内容)然后重新上传翻译文件夹。

这种方式对我来说效果很好。

【讨论】:

    猜你喜欢
    • 2013-07-09
    • 1970-01-01
    • 2015-10-27
    • 2012-03-25
    • 2014-09-07
    • 2018-03-05
    • 2018-06-16
    • 1970-01-01
    • 2012-11-12
    相关资源
    最近更新 更多