首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使另一种网站语言成为默认站点语言?

如何使另一种网站语言成为默认站点语言?
EN

Stack Overflow用户
提问于 2011-12-13 15:18:22
回答 4查看 4.7K关注 0票数 4

我有一个TYPO3网站,默认的网站语言是德语。不久前,我添加了另一种网站语言,即英语。

我现在需要做的是在后端交换这两种语言:

发自:

  • 违约:德语
  • 备选案文:英文

至:

  • 默认情况:英文
  • 备选案文:德语

因此,在后端,当我创建一个新的内容元素时,默认语言是英语。

EN

回答 4

Stack Overflow用户

发布于 2011-12-17 03:45:35

在TYPO3s本地化概念中,默认语言被认为是原始语言,驻留在数据库表pages中。其他语言是原始语言的翻译,驻留在表pages_language_overlay中。因此,您不能简单地将默认值切换到一种已翻译的语言。

更改新内容的默认语言本身并不困难,但您将得到所有标记为"english“的现有德语内容,因此您需要用一些mySQL技巧重新分配内容元素。如果您不关心您现有的内容,只需省略步骤3& 4。

步骤1:

在对数据库进行更改之前,请确保备份相关数据,至少要备份表pagespages_language_overlaytt_content

步骤2:

假设英语是id 1(sys_language_uid = 1)的语言:

后台是德语的创建一个新的语言条目。如果您过去没有定义任何其他语言,那么它将被认为是'sys_language_uid = 2‘

步骤3:

将默认语言元素更改为新语言“德语”(在mySQL /phpMyAdmin中):

UPDATE tt_content SET sys_language_uid = 2 WHERE sys_language_uid = 0

步骤4:

将原英语语言元素更改为新的默认语言:

UPDATE tt_content SET sys_language_uid = 0 WHERE sys_language_uid = 1

步骤5:

然后,如果您愿意,通过在根页面的页面属性中输入以下内容,更改后端的语言标签:

代码语言:javascript
复制
mod.SHARED {
        defaultLanguageFlag = gb
        defaultLanguageLabel = English
}

步骤6:

记住也要为前端更改所有的language_uids (例如,语言菜单):config.sys_language_uid = 2 (如果它以前是德语的)。这可能会导致一些死气沉沉的链接,如果做不好。

步骤7:

删除英语的替代语言记录

结论:

取决于涉及到多少其他扩展(例如realURL),这个任务可能不值得花时间在它上。我希望核心开发人员在未来能找到一个更简单的解决方案。

票数 3
EN

Stack Overflow用户

发布于 2013-04-16 20:22:06

人们也可能想要切换页面标题。做以下事情:

代码语言:javascript
复制
UPDATE pages, pages_language_overlay 
SET pages.title = pages_language_overlay.title, 
       pages.subtitle = pages_language_overlay.subtitle, 
       pages.nav_title = pages_language_overlay.nav_title, 
       pages.tx_realurl_pathsegment = pages_language_overlay.tx_realurl_pathsegment 
WHERE (pages.uid = pages_language_overlay.pid) 
AND (pages_language_overlay.sys_language_uid = 1);
票数 1
EN

Stack Overflow用户

发布于 2016-10-02 04:03:15

我在这里找到了一个很好的解决方案,没有失去任何't3_origuid‘。

当前设置:德语是默认语言,英语语言第一:清除所有的删除条目:

代码语言:javascript
复制
delete from tt_content where deleted = 1;

德语内容变化的sys_language_uid (从0到10):

代码语言:javascript
复制
update tt_content set sys_language_uid=10 where sys_language_uid=0;

英语变化的sys_language_uid (从1到0):

代码语言:javascript
复制
update tt_content set sys_language_uid=0 where sys_language_uid=1;

德国的sys_language_uid改为1(从10改为1):

代码语言:javascript
复制
update tt_content set sys_language_uid=1 where sys_language_uid=10;

为德语条目设置新的l18n_parent:

代码语言:javascript
复制
UPDATE tt_content as c1
RIGHT JOIN tt_content as c2 on c2.l18n_parent=c1.uid
SET c1.l18n_parent=c1.uid,c1.t3_origuid=c1.uid
WHERE c1.sys_language_uid=1
    AND c2.sys_language_uid=0;

更改德语条目的uid (>超过大多数当前内容ID!):

代码语言:javascript
复制
UPDATE tt_content as c1
RIGHT JOIN tt_content as c2 on c2.l18n_parent=c1.uid
SET c1.uid=c2.uid+10000
WHERE c1.sys_language_uid=1
    AND c2.sys_language_uid=0;

将英语设置为德语所在的ID:

代码语言:javascript
复制
UPDATE tt_content
SET uid=l18n_parent where sys_language_uid=0 and l18n_parent>0;

再换一次德国的uid

代码语言:javascript
复制
UPDATE tt_content
SET uid=uid-10000 where sys_language_uid=1 and uid>10000;

清理

代码语言:javascript
复制
UPDATE tt_content 
SET l18n_parent=0,t3_origuid=0,l18n_diffsource=''
where sys_language_uid=0 and l18n_parent>0;

转移某些已转移的字段:

代码语言:javascript
复制
UPDATE  tt_content as c1
RIGHT JOIN tt_content as c2 on c2.l18n_parent=c1.uid
SET c1.hidden=c2.hidden,
    c1.starttime=c2.starttime,
    c1.endtime=c2.endtime
WHERE c1.sys_language_uid=0
    AND c2.sys_language_uid=1;

PAGES:从表页创建一个副本,例如pages_new:

然后第1步:

代码语言:javascript
复制
update pages left join pages_language_overlay on pages.uid=pages_language_overlay.pid set pages.title=pages_language_overlay.title,        pages.subtitle=pages_language_overlay.subtitle,     pages.description=pages_language_overlay.description,        pages.keywords=pages_language_overlay.keywords,        pages.abstract=pages_language_overlay.abstract,        pages.nav_title=pages_language_overlay.nav_title    where pages_language_overlay.sys_language_uid=1;

第2步:

代码语言:javascript
复制
update pages_language_overlay right join pages_new on pages_language_overlay.pid=pages_new.uid set pages_language_overlay.title=pages_new.title,        pages_language_overlay.subtitle=pages_new.subtitle,     pages_language_overlay.description=pages_new.description,        pages_language_overlay.keywords=pages_new.keywords,        pages_language_overlay.abstract=pages_new.abstract,        pages_language_overlay.nav_title=pages_new.nav_title    where pages_language_overlay.sys_language_uid=1;

在这里发现的在这里输入链接描述

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8491587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档