首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何进入不同的目录

如何进入不同的目录
EN

Stack Overflow用户
提问于 2012-12-13 17:58:15
回答 1查看 584关注 0票数 1

我使用pootle来允许人们翻译PHP项目中的.po文件。

一旦翻译器更新了.po文件,updated就可以拉出和推送翻译。另外,我们有开发人员在网站上工作,他们也可能更新翻译文件,以添加更多的文本,以被翻译。

Yii要求.po文件位于:

yii-project/protected/messages/en_gb/messages.po

Pootle要求目录结构为:

pootle/yii-project/en_GB/messages.po

为了让pootle拉动和推送,.git目录需要位于pootle/yii/..git中。

我尝试过使用git稀疏签出,但这会将文件拖到pootle/yii-project/protected/messages/en_gb/messages.po中,不幸的是,该文件没有被选中。

我无法在其他地方拉动存储库,然后再调用softlink,因为pootle将无法找到.git目录。

我真正想要做的是对一个目录进行稀疏签出,并将结果映射到另一个目录,即签出:

项目/受保护/信息/ -> pootle/yii项目

我不想使用git子树,因为我希望这些文件能够由开发人员或翻译人员更新。我不想使用子模块,因为我不喜欢额外的拉开销,我们希望开发人员在单个提交中包含与新特性相关的所有更改(而不是在主项目上提交一个,在子模块上包含一个)。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2013-01-03 14:47:33

我们找不到解决办法。

相反,我们使用了子模块。

我们首先提取了yii项目/受保护/消息目录,并创建了一个名为yii翻译的新存储库。

然后,我们降低了每个目录,包括翻译-例如:

代码语言:javascript
复制
git mv en_GB en_gb

然后,我们将新的存储库作为子模块返回到原来的yii项目中:

代码语言:javascript
复制
cd yii-project/
git subtree split --prefix=protected/messages --branch=yii-project-translations
cd protected/
git rm -rf ./messages
mkdir messages
pushd messages
git init
git remote add origin git-server:yii-project-translations
git pull ../../ yii-project-translations
git push origin -u master
popd

并将此存储库克隆为pootle项目:

代码语言:javascript
复制
cd $POOTLE_HOME/translations/
git clone gitolite@git.algo.travel:yii-project-translations yii-project

最后,我们更新了pootle数据库中的几个表,使之成为小写目录名,因此所有内容都很好地结合在一起:

代码语言:javascript
复制
update pootle_app_language set code = lower(code);
update pootle_app_directory set pootle_path = lower(pootle_path);
update pootle_app_translationproject set real_path = lower(real_path), pootle_path = lower(pootle_path); 

@michal Weblate看起来很棒。如果我在这条路上有90%的人遇到它,我就会用它。谢谢!

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

https://stackoverflow.com/questions/13865660

复制
相关文章

相似问题

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