小编Cha*_*lta的帖子

XLIFF的工作流程/最佳实践

我正在使用命令行工具(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

图片的标题说明:

  • Lokalize手册根本没用.我看到很多功能听起来很有希望,比如:
    • "文件">"从模板更新文件".我没有在手册中找到任何解释此功能的内容.如果我点击它,没有任何反应.
    • "同步">"打开文件进行同步/合并".这似乎是合并两个类似文件(由多个翻译器)而不是从模板更新翻译文件的工具的功能.即使Lokalize的主同步选项卡中有工具提示,通知我"x不匹配的条目",我也找不到任何可以将这些不匹配的条目附加到我的.de.xlf文件中的内容.
    • [更新]事实证明,我遇到了与此问题类似的问题.在将我的Lokalize版本降级为建议的版本后,许多问题(包括问题中提到的问题)都消失了.但是,现在"从模板更新文件"选项显示为灰色,我不知道为什么.
  • 我也尝试过OmegaT,它在我的平台上根本不起作用(Ubuntu 16.04).
  • [更新] Virtaal非常适合从模板中合并新字符串,但UI一般设计得非常糟糕......
  • 谷歌搜索并没有帮助,因为每次点击似乎都与XCode有关.

感谢您提前的任何帮助,我真的很感激

xliff

14
推荐指数
1
解决办法
3775
查看次数

头文件没有显式编写命名空间

在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]我遇到的问题与问题无关.这种方法确实有效,但它有缺点(见接受的答案).

c++

8
推荐指数
2
解决办法
368
查看次数

量角器一直在等待已完成的HTTP请求

我有一个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)

typescript protractor angular

6
推荐指数
1
解决办法
1996
查看次数

标签 统计

angular ×1

c++ ×1

protractor ×1

typescript ×1

xliff ×1