我正在使用命令行工具(ng-xi18n)从我写的角度2应用程序中提取i18n字符串.该命令的输出是一个messages.xlf文件.从未来.po的背景,并且是不熟悉的.xlf,我认为这个文件是相当于.pot文件(纠正我,如果我错了).
然后我假设如果我想翻译我的应用程序,我必须cp messages.xlf messages.de.xlf有一个messages.de.xlf模板文件(messages.xlf)的副本(),我可以将每个消息翻译成德语(因此.de.xlf).
翻译一些虚拟文本和运行应用程序后,我看到了它的工作如预期,所以我辞职了翻译,并继续开发应用程序.过了一段时间,我添加了更多的i18n字符串,并最终认为我必须更新我的模板.这就是事情难以维持的地方.我更新了模板messages.xlf文件,很快就想知道如何在messages.de.xlf不失去进度的情况下将新字符串更新为已翻译的文件.
当我使用.po文件进行开发时,由于像poEdit这样的好工具,这没有问题,但我找不到任何类似的东西.xlf.在尝试了一些工具后,我认为最好的选择是Lokalize,但我没有找到将模板文件合并到已翻译(但过时)文件的可能性.
到目前为止,这只是一篇文章而不是一个问题,所以这里有一个简短的总结:
.xlf文件的工作流程是否真的与.po我最初想到的相似(如上所述),还是完全不同?.xlf文件的最佳做法是什么?.xlf?图片的标题说明:
.de.xlf文件中的内容.感谢您提前的任何帮助,我真的很感激
在C++实现文件中,我可以选择编写类似于:
name::space::ClassName::someFunction(int param) {
// impl
}
Run Code Online (Sandbox Code Playgroud)
代替
namespace name {
namespace space {
ClassName::someFunction(int param) {
// impl
}
}
}
Run Code Online (Sandbox Code Playgroud)
我发现它非常方便,更具可读性.这可以以某种方式在头文件中使用吗?像这样的东西:
class name::space::ClassName {
// declarations
};
Run Code Online (Sandbox Code Playgroud)
代替
namespace name {
namespace space {
class ClassName {
// declarations
};
}
}
Run Code Online (Sandbox Code Playgroud)
如果这样的事情是可能的,那么在哪些条件下呢?我可以想象,一个人需要转发声明命名空间向前声明命名空间中的类,如下所示:
namespace name {
namespace space {
class ClassName;
}
}
Run Code Online (Sandbox Code Playgroud)
在能够使用之前:
class name::space::ClassName {
// declarations
};
Run Code Online (Sandbox Code Playgroud)
在头文件中.
但不知怎的,我无法让这个工作1].它甚至可能吗?困扰我的是,使用嵌套命名空间我必须缩进2个选项卡,直到我能够实际声明我的类.我想在我的头文件中使用该空间,但我不想省略选项卡,因为这将违反"花括号中的所有内容需要标记一次"-rule(我不知道是否有这个的实际名称.如果有,请原谅我的无知,我不知道:S
1]我遇到的问题与问题无关.这种方法确实有效,但它有缺点(见接受的答案).
我有一个RESTful API,现在我正在开发一个angular2应用程序,它使用数据服务来调用API.然后我想用量角器实现端到端测试.我想从非常低的水平开始,所以我进行了测试,以便在点击链接时检查我的组件是否存在.测试看起来像这样:
describe('my-webclient', () => {
it('app should load', () => {
browser.get('/');
expect(element(by.css('my-app')).isPresent()).toBe(true);
});
it('app should have a top navigation', () => {
expect(element(by.css('my-nav-top')).isPresent()).toBe(true);
});
it('app should have a side navigation', () => {
expect(element(by.css('my-nav-side')).isPresent()).toBe(true);
});
it('app should have a content', () => {
expect(element(by.css('my-content')).isPresent()).toBe(true);
});
it('app should load the overview for route "/"', () => {
expect(element(by.css('my-overview')).isPresent()).toBe(true);
});
});
Run Code Online (Sandbox Code Playgroud)
问题是,概述组件ngOnInit使用某些数据服务在函数中发出HTTP请求.然后,量角器将永远阻止,尽管HTTP请求早已完成.
当我监控测试时,我可以看到应用程序的加载方式,包括从我的API获取的所有数据.然后什么也没发生,量角器最终会崩溃,说达到了超时.
确切的错误消息是:
Failed: Timed out waiting for Protractor to synchronize with the page after 11 seconds. …Run Code Online (Sandbox Code Playgroud)