gpt4 book ai didi

drupal - 如何批量更改实体语言?

转载 作者:行者123 更新时间:2023-12-02 06:17:12 25 4
gpt4 key购买 nike

我在 drupal 中有一个站点,默认情况下是西类牙语。现在我想添加英文翻译。它有很多带有未定义('und')语言的实体“producto”。我想将“es”语言批量分配给他们。在发布这个问题之前,我检查了另一个问题How to change node languages in batches?但我无法实现我想要的。让我解释一下:

a) 我已经尝试过语言分配,但它的最后一次提交是在一年前,它有一个严重的错误,可能会导致数据丢失(我也重现了该错误)我也尝试过用户 barami 的补丁,但数据丢失仍然存在。

b) 查看批量操作:我已经尝试过,但它只更新数据库表“节点”中的字段。不是其他的。

c) 所以我检查了 drupal 数据库的工作原理并创建了一个 sql 脚本,这也会导致数据丢失:

-- Step 1 Node lang
update node set language='es' where type='producto';

-- Step 2 body field
update field_data_body set language='es' where bundle='producto';

-- Step 3 Field comment vody
update field_data_comment_body set language='es' where bundle='comment_node_producto';

-- Step 4 For each field of producto, update language
update field_data_field_precio set language='es' where bundle='producto';
update field_revision_field_precio set language='es' where bundle='producto';

(...)

我激活了以下翻译模块:国际化、 block 语言、字段翻译、菜单翻译、多语言内容、多语言选择、​​同步翻译、分类翻译、翻译重定向、翻译集

我的 sql 脚本做错了什么?还有其他插件可以完成我想做的事情吗?任何建议将不胜感激,谢谢!

最佳答案

以下是我在网站上批量设置语言的方法:

  1. 使用 View 批量优化,选择要更改的所有节点,使用“更改值”选项,然后将值更改为您想要的语言。

  2. 完成此操作后,编辑节点时将不会出现字段值,因此您需要运行脚本,例如UPDATE database.field_data_body SET language='en' WHERE bundle='page'(根据需要使用您的数据库名称、字段名称和包)。

重要提示:如果您有任何自定义网址别名,由于 pathauto 的问题,它们将被这种方法覆盖,但有一个解决方法:首先转到/admin/config/search/path/settings,然后将“更新操作”选项更改为“不执行任何操作”。保持旧别名不变。”,然后在运行“ View 批量操作”操作后将此值改回原来的值。

关于drupal - 如何批量更改实体语言?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14445636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com