我在Cocoa内置的本地化系统遇到了一个奇怪的问题.我使用genstrings为我的项目创建一个localizable.strings文件,该文件加载并替换我的应用程序中预期的字符串.
但是,它似乎只适用于所有其他构建.我将使用XCode构建代码,在我的设备上测试它,它将显示正确的字符串没有问题.然而,下一个构建将无法加载字符串文件(至少,这就是我所假设的.)这不是随机的,但可以预见的是每个其他构建.我对Localizable.strings文件一无所知.
我不知道从哪里开始诊断这个问题,我想知道是否有人有过在Cocoa上进行本地化的经验.
我在我的代码库中使用NSLocalizedString,如下所示:
NSLocalizedString(@"ReallyNewGame", @"Are you sure you want to start a new game?")
Run Code Online (Sandbox Code Playgroud)
我的Localizable.strings文件中的相应条目:
/* Are you sure you want to start a new game? */
"ReallyNewGame" = "Do you really want to start a new game?";
Run Code Online (Sandbox Code Playgroud)
以下是我的Info.plist的相关部分:
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
Run Code Online (Sandbox Code Playgroud)
以下是应用程序的每个其他版本的截图:
正确:
不正确:
我很困惑为什么会这样.我没有使用Localizable.strings文件手动执行任何操作,并且我已经在XCode上多次清理了我的项目.任何指向正确方向的人都会非常感激.如果您需要更多信息,我会尝试提供.
谢谢!
我一直在开发一个简单的 GUI,但遇到了障碍。我还没有找到任何关于如何创建 GUI 布局管理器的示例,甚至没有找到可读的源代码。我想知道是否有人知道一些创建此类资源的资源,或者一些像 Qt 的布局引擎那样不神秘的源代码。
我正在开发一个Qt中的应用程序,它经常重建它的菜单.但是,当我们调用clear()并在菜单中重新添加我们想要的操作时,"Special Characters ..."似乎仍保留在菜单中.有没有办法删除或将此操作移动到QMenu的底部?
以下是重建菜单的代码:
void MainWindow::initMenus(Tab* tab)
{
menuBar()->clear();
menuFile->clear();
menuEdit->clear();
menuSettings->clear();
menuHelp->clear();
ui_toolBar->clear();
menuBar()->addMenu(menuFile);
menuBar()->addMenu(menuEdit);
menuFile->addAction(actionNew);
menuFile->addAction(actionOpen);
if(tab) tab->addActionsFile(menuFile);
menuFile->addSeparator();
menuFile->addAction(actionNext);
menuFile->addAction(actionPrevious);
menuFile->addAction(actionClose);
menuFile->addSeparator();
menuFile->addAction(actionQuit);
if(tab) {
tab->addActionsEdit(menuEdit);
menuEdit->addSeparator();
tab->addActionsHelp(menuHelp);
menuHelp->addSeparator();
}
menuEdit->addAction(actionEditor_Settings);
menuHelp->addSeparator();
menuHelp->addAction(actionAbout);
if(tab) tab->addOtherActions(menuBar());
menuBar()->addMenu(menuHelp);
ui_toolBar->addAction(actionNew);
ui_toolBar->addAction(actionOpen);
if(tab) tab->addToolbarActions(ui_toolBar);
}
Run Code Online (Sandbox Code Playgroud)
它提供了一个选项卡,可以使用这些功能将自己的操作添加到菜单中.