Page MenuHomePhabricator (Chris)

No OneTemporary

Size
583 KB
Referenced Files
None
Subscribers
None
This file is larger than 256 KB, so syntax highlighting was skipped.
diff --git a/src/BasicMainWindow.cpp b/src/BasicMainWindow.cpp
index 8390fe2..278d3b9 100644
--- a/src/BasicMainWindow.cpp
+++ b/src/BasicMainWindow.cpp
@@ -1,2940 +1,2948 @@
#include "ApplicationGlobal.h"
#include "BasicMainWindow.h"
#include "CheckoutDialog.h"
#include "CloneDialog.h"
#include "CommitDialog.h"
#include "CommitExploreWindow.h"
#include "CommitViewWindow.h"
#include "CreateRepositoryDialog.h"
#include "DeleteBranchDialog.h"
#include "DoYouWantToInitDialog.h"
#include "FileHistoryWindow.h"
#include "FilePropertyDialog.h"
#include "FileUtil.h"
#include "Git.h"
#include "GitDiff.h"
#include "MemoryReader.h"
#include "MySettings.h"
#include "PushDialog.h"
#include "RepositoryPropertyDialog.h"
#include "SelectCommandDialog.h"
#include "SetGlobalUserDialog.h"
#include "SetUserDialog.h"
#include "SettingsDialog.h"
#include "Terminal.h"
#include "TextEditDialog.h"
#include "UserEvent.h"
#include "WelcomeWizardDialog.h"
#include "common/joinpath.h"
#include "common/misc.h"
#include "gpg.h"
#include "gunzip.h"
#include "platform.h"
#include "webclient.h"
#include <QDesktopServices>
#include <QDir>
#include <QDirIterator>
#include <QEvent>
#include <QFileIconProvider>
#include <QListWidget>
#include <QMenu>
#include <QMessageBox>
#include <QStandardPaths>
#include <QTreeWidgetItem>
#include <functional>
#include <memory>
class AsyncExecGitThread_ : public QThread {
private:
GitPtr g;
std::function<void(GitPtr g)> callback;
public:
AsyncExecGitThread_(GitPtr const &g, std::function<void(GitPtr const &g)> const &callback)
: g(g)
, callback(callback)
{
}
protected:
void run() override
{
callback(g);
}
};
//
struct BasicMainWindow::Private {
ApplicationSettings appsettings;
QIcon repository_icon;
QIcon folder_icon;
QIcon signature_good_icon;
QIcon signature_dubious_icon;
QIcon signature_bad_icon;
QPixmap transparent_pixmap;
QString starting_dir;
Git::Context gcx;
RepositoryItem current_repo;
QList<RepositoryItem> repos;
Git::CommitItemList logs;
QList<Git::Diff> diff_result;
QStringList added;
QStringList remotes;
QString current_remote_name;
Git::Branch current_branch;
unsigned int temp_file_counter = 0;
std::string ssh_passphrase_user;
std::string ssh_passphrase_pass;
std::string http_uid;
std::string http_pwd;
std::map<QString, GitHubAPI::User> committer_map; // key is email
PtyProcess pty_process;
bool pty_process_ok = false;
PtyCondition pty_condition = PtyCondition::None;
WebContext webcx;
AvatarLoader avatar_loader;
int update_files_list_counter = 0;
int update_commit_table_counter = 0;
bool interaction_canceled = false;
InteractionMode interaction_mode = InteractionMode::None;
QString repository_filter_text;
bool uncommited_changes = false;
std::map<QString, QList<Git::Branch>> branch_map;
std::map<QString, QList<Git::Tag>> tag_map;
std::map<int, QList<Label>> label_map;
std::map<QString, Git::Diff> diff_cache;
GitObjectCache objcache;
bool remote_changed = false;
ServerType server_type = ServerType::Standard;
GitHubRepositoryInfo github;
QString head_id;
bool force_fetch = false;
RepositoryItem temp_repo_for_clone_complete;
QVariant pty_process_completion_data;
};
BasicMainWindow::BasicMainWindow(QWidget *parent)
: QMainWindow(parent)
, m(new Private)
{
SettingsDialog::loadSettings(&m->appsettings);
m->starting_dir = QDir::current().absolutePath();
{ // load graphic resources
QFileIconProvider icons;
m->folder_icon = icons.icon(QFileIconProvider::Folder);
m->repository_icon = QIcon(":/image/repository.png");
m->signature_good_icon = QIcon(":/image/signature-good.png");
m->signature_bad_icon = QIcon(":/image/signature-bad.png");
m->signature_dubious_icon = QIcon(":/image/signature-dubious.png");
m->transparent_pixmap = QPixmap(":/image/transparent.png");
}
}
BasicMainWindow::~BasicMainWindow()
{
setRemoteMonitoringEnabled(false);
deleteTempFiles();
delete m;
}
ApplicationSettings *BasicMainWindow::appsettings()
{
return &m->appsettings;
}
const ApplicationSettings *BasicMainWindow::appsettings() const
{
return &m->appsettings;
}
WebContext *BasicMainWindow::webContext()
{
return &m->webcx;
}
QString BasicMainWindow::gitCommand() const
{
return m->gcx.git_command;
}
namespace {
} // namespace
bool BasicMainWindow::event(QEvent *event)
{
if (event->type() == (QEvent::Type)EventUserFunction) {
if (auto *e = (UserFunctionEvent *)event) {
e->func(e->var);
return true;
}
}
return QMainWindow::event(event);
}
void BasicMainWindow::postUserFunctionEvent(const std::function<void(QVariant const &)> &fn, QVariant const &v)
{
qApp->postEvent(this, new UserFunctionEvent(fn, v));
}
void BasicMainWindow::autoOpenRepository(QString dir)
{
auto Open = [&](RepositoryItem const &item){
setCurrentRepository(item, true);
openRepository(false, true);
};
RepositoryItem const *repo = findRegisteredRepository(&dir);
if (repo) {
Open(*repo);
return;
}
RepositoryItem newitem;
GitPtr g = git(dir);
if (isValidWorkingCopy(g)) {
ushort const *left = dir.utf16();
ushort const *right = left + dir.size();
if (right[-1] == '/' || right[-1] == '\\') {
right--;
}
ushort const *p = right;
while (left + 1 < p && !(p[-1] == '/' || p[-1] == '\\')) p--;
if (p < right) {
newitem.local_dir = dir;
newitem.name = QString::fromUtf16(p, right - p);
saveRepositoryBookmark(newitem);
Open(newitem);
return;
}
} else {
DoYouWantToInitDialog dlg(this, dir);
if (dlg.exec() == QDialog::Accepted) {
createRepository(dir);
}
}
}
GitPtr BasicMainWindow::git(QString const &dir, QString const &sshkey) const
{
GitPtr g = std::make_shared<Git>(m->gcx, dir, sshkey);
if (g && QFileInfo(g->gitCommand()).isExecutable()) {
g->setLogCallback(git_callback, (void *)this);
return g;
} else {
QString text = tr("git command not specified") + '\n';
const_cast<BasicMainWindow *>(this)->writeLog(text);
return GitPtr();
}
}
GitPtr BasicMainWindow::git()
{
RepositoryItem const &item = currentRepository();
// return git(currentWorkingCopyDir());
return git(item.local_dir, item.ssh_key);
}
QPixmap BasicMainWindow::getTransparentPixmap()
{
return m->transparent_pixmap;
}
QIcon BasicMainWindow::committerIcon(int row) const
{
QIcon icon;
if (isAvatarEnabled() && isOnlineMode()) {
auto const &logs = getLogs();
if (row >= 0 && row < (int)logs.size()) {
Git::CommitItem const &commit = logs[row];
if (commit.email.indexOf('@') > 0) {
std::string email = commit.email.toStdString();
icon = getAvatarLoader()->fetch(email, true); // from gavatar
}
}
}
return icon;
}
Git::CommitItem const *BasicMainWindow::commitItem(int row) const
{
auto const &logs = getLogs();
if (row >= 0 && row < (int)logs.size()) {
return &logs[row];
}
return nullptr;
}
QIcon BasicMainWindow::verifiedIcon(char s) const
{
Git::SignatureGrade g = Git::evaluateSignature(s);
switch (g) {
case Git::SignatureGrade::Good:
return m->signature_good_icon;
case Git::SignatureGrade::Bad:
return m->signature_bad_icon;
case Git::SignatureGrade::Unknown:
case Git::SignatureGrade::Dubious:
case Git::SignatureGrade::Missing:
return m->signature_dubious_icon;
}
return QIcon();
}
QString BasicMainWindow::currentWorkingCopyDir() const
{
return m->current_repo.local_dir;
}
bool BasicMainWindow::isRepositoryOpened() const
{
return Git::isValidWorkingCopy(currentWorkingCopyDir());
}
QList<BasicMainWindow::Label> const *BasicMainWindow::label(int row) const
{
auto it = getLabelMap()->find(row);
if (it != getLabelMap()->end()) {
return &it->second;
}
return nullptr;
}
QList<BasicMainWindow::Label> BasicMainWindow::sortedLabels(int row) const
{
QList<BasicMainWindow::Label> list;
auto const *p = const_cast<BasicMainWindow *>(this)->label(row);
if (p && !p->empty()) {
list = *p;
std::sort(list.begin(), list.end(), [](BasicMainWindow::Label const &l, BasicMainWindow::Label const &r){
auto Compare = [](BasicMainWindow::Label const &l, BasicMainWindow::Label const &r){
if (l.kind < r.kind) return -1;
if (l.kind > r.kind) return 1;
if (l.text < r.text) return -1;
if (l.text > r.text) return 1;
return 0;
};
return Compare(l, r) < 0;
});
}
return list;
}
bool BasicMainWindow::saveAs(QString const &id, QString const &dstpath)
{
if (id.startsWith(PATH_PREFIX)) {
return saveFileAs(id.mid(1), dstpath);
} else {
return saveBlobAs(id, dstpath);
}
}
bool BasicMainWindow::testRemoteRepositoryValidity(QString const &url, QString const &sshkey)
{
bool ok;
{
OverrideWaitCursor;
ok = isValidRemoteURL(url, sshkey);
}
QString pass = tr("The URL is a valid repository");
QString fail = tr("Failed to access the URL");
QString text = "%1\n\n%2";
text = text.arg(url).arg(ok ? pass : fail);
QString title = tr("Remote Repository");
if (ok) {
QMessageBox::information(this, title, text);
} else {
QMessageBox::critical(this, title, text);
}
return ok;
}
void BasicMainWindow::addWorkingCopyDir(QString const &dir, bool open)
{
addWorkingCopyDir(dir, QString(), open);
}
bool BasicMainWindow::queryCommit(QString const &id, Git::CommitItem *out)
{
*out = Git::CommitItem();
GitPtr g = git();
return g->queryCommit(id, out);
}
QAction *BasicMainWindow::addMenuActionProperty(QMenu *menu)
{
return menu->addAction(tr("&Property"));
}
void BasicMainWindow::checkout(QWidget *parent, Git::CommitItem const *commit, std::function<void()> accepted_callback)
{
if (!commit) return;
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
QStringList tags;
QStringList all_local_branches;
QStringList local_branches;
QStringList remote_branches;
{
NamedCommitList named_commits = namedCommitItems(Branches | Tags | Remotes);
for (NamedCommitItem const &item : named_commits) {
QString name = item.name;
if (item.id == commit->commit_id) {
if (item.type == NamedCommitItem::Type::Tag) {
tags.push_back(name);
} else if (item.type == NamedCommitItem::Type::BranchLocal || item.type == NamedCommitItem::Type::BranchRemote) {
int i = name.lastIndexOf('/');
if (i < 0 && name == "HEAD") continue;
if (i > 0 && name.mid(i + 1) == "HEAD") continue;
if (item.type == NamedCommitItem::Type::BranchLocal) {
local_branches.push_back(name);
} else if (item.type == NamedCommitItem::Type::BranchRemote) {
remote_branches.push_back(name);
}
}
}
if (item.type == NamedCommitItem::Type::BranchLocal) {
all_local_branches.push_back(name);
}
}
}
CheckoutDialog dlg(parent, tags, all_local_branches, local_branches, remote_branches);
if (dlg.exec() == QDialog::Accepted) {
if (accepted_callback) {
accepted_callback();
}
CheckoutDialog::Operation op = dlg.operation();
QString name = dlg.branchName();
QString id = commit->commit_id;
if (id.isEmpty() && !commit->parent_ids.isEmpty()) {
id = commit->parent_ids.front();
}
bool ok = false;
setLogEnabled(g, true);
if (op == CheckoutDialog::Operation::HeadDetached) {
if (!id.isEmpty()) {
ok = g->git(QString("checkout \"%1\"").arg(id), true);
}
} else if (op == CheckoutDialog::Operation::CreateLocalBranch) {
if (!name.isEmpty() && !id.isEmpty()) {
ok = g->git(QString("checkout -b \"%1\" \"%2\"").arg(name).arg(id), true);
}
} else if (op == CheckoutDialog::Operation::ExistingLocalBranch) {
if (!name.isEmpty()) {
ok = g->git(QString("checkout \"%1\"").arg(name), true);
}
}
if (ok) {
openRepository(true);
}
}
}
void BasicMainWindow::jumpToCommit(QString id)
{
GitPtr g = git();
id = g->rev_parse(id);
if (!id.isEmpty()) {
int row = rowFromCommitId(id);
setCurrentLogRow(row);
}
}
void BasicMainWindow::execCommitViewWindow(Git::CommitItem const *commit)
{
CommitViewWindow win(this, commit);
win.exec();
}
void BasicMainWindow::execCommitExploreWindow(QWidget *parent, Git::CommitItem const *commit)
{
CommitExploreWindow win(parent, this, getObjCache(), commit);
win.exec();
}
void BasicMainWindow::execFileHistory(QString const &path)
{
if (path.isEmpty()) return;
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
FileHistoryWindow dlg(this);
dlg.prepare(g, path);
dlg.exec();
}
void BasicMainWindow::execFilePropertyDialog(QListWidgetItem *item)
{
if (item) {
QString path = getFilePath(item);
QString id = getObjectID(item);
FilePropertyDialog dlg(this);
dlg.exec(this, path, id);
}
}
QString BasicMainWindow::selectGitCommand(bool save)
{
char const *exe = GIT_COMMAND;
QString path = gitCommand();
auto fn = [&](QString const &path){
setGitCommand(path, save);
};
QStringList list = whichCommand_(exe);
#ifdef Q_OS_WIN
{
QStringList newlist;
QString suffix1 = "\\bin\\" GIT_COMMAND;
QString suffix2 = "\\cmd\\" GIT_COMMAND;
for (QString const &s : list) {
newlist.push_back(s);
auto DoIt = [&](QString const &suffix){
if (s.endsWith(suffix)) {
QString t = s.mid(0, s.size() - suffix.size());
QString t1 = t + "\\mingw64\\bin\\" GIT_COMMAND;
if (misc::isExecutable(t1)) newlist.push_back(t1);
QString t2 = t + "\\mingw\\bin\\" GIT_COMMAND;
if (misc::isExecutable(t2)) newlist.push_back(t2);
}
};
DoIt(suffix1);
DoIt(suffix2);
}
std::sort(newlist.begin(), newlist.end());
auto end = std::unique(newlist.begin(), newlist.end());
list.clear();
for (auto it = newlist.begin(); it != end; it++) {
list.push_back(*it);
}
}
#endif
return selectCommand_("Git", exe, list, path, fn);
}
QString BasicMainWindow::selectFileCommand(bool save)
{
char const *exe = FILE_COMMAND;
QString path = global->file_command;
auto fn = [&](QString const &path){
setFileCommand(path, save);
};
QStringList list = whichCommand_(exe);
#ifdef Q_OS_WIN
QString dir = misc::getApplicationDir();
QString path1 = dir / FILE_COMMAND;
QString path2;
int i = dir.lastIndexOf('/');
int j = dir.lastIndexOf('\\');
if (i < j) i = j;
if (i > 0) {
path2 = dir.mid(0, i) / FILE_COMMAND;
}
path1 = misc::normalizePathSeparator(path1);
path2 = misc::normalizePathSeparator(path2);
if (misc::isExecutable(path1)) list.push_back(path1);
if (misc::isExecutable(path2)) list.push_back(path2);
#endif
return selectCommand_("File", exe, list, path, fn);
}
QString BasicMainWindow::selectGpgCommand(bool save)
{
QString path = global->gpg_command;
auto fn = [&](QString const &path){
setGpgCommand(path, save);
};
QStringList list = whichCommand_(GPG_COMMAND, GPG2_COMMAND);
QStringList cmdlist;
cmdlist.push_back(GPG_COMMAND);
cmdlist.push_back(GPG2_COMMAND);
return selectCommand_("GPG", cmdlist, list, path, fn);
}
QString BasicMainWindow::selectSshCommand(bool save)
{
QString path = m->gcx.ssh_command;
auto fn = [&](QString const &path){
setSshCommand(path, save);
};
QStringList list = whichCommand_(SSH_COMMAND);
QStringList cmdlist;
cmdlist.push_back(SSH_COMMAND);
return selectCommand_("ssh", cmdlist, list, path, fn);
}
Git::Branch const &BasicMainWindow::currentBranch() const
{
return m->current_branch;
}
void BasicMainWindow::setCurrentBranch(Git::Branch const &b)
{
m->current_branch = b;
}
RepositoryItem const &BasicMainWindow::currentRepository() const
{
return m->current_repo;
}
QString BasicMainWindow::currentRepositoryName() const
{
return currentRepository().name;
}
QString BasicMainWindow::currentRemoteName() const
{
return m->current_remote_name;
}
QString BasicMainWindow::currentBranchName() const
{
return currentBranch().name;
}
bool BasicMainWindow::isValidWorkingCopy(const GitPtr &g) const
{
return g && g->isValidWorkingCopy();
}
QString BasicMainWindow::determinFileType_(QString const &path, bool mime, std::function<void (QString const &, QByteArray *)> const &callback) const
{
const_cast<BasicMainWindow *>(this)->checkFileCommand();
return misc::determinFileType(global->file_command, path, mime, callback);
}
QString BasicMainWindow::determinFileType(QString const &path, bool mime)
{
return determinFileType_(path, mime, [](QString const &cmd, QByteArray *ba){
misc2::runCommand(cmd, ba);
});
}
QString BasicMainWindow::determinFileType(QByteArray in, bool mime)
{
if (in.isEmpty()) return QString();
if (in.size() > 10) {
if (memcmp(in.data(), "\x1f\x8b\x08", 3) == 0) { // gzip
QBuffer buf;
MemoryReader reader(in.data(), in.size());
reader.open(MemoryReader::ReadOnly);
buf.open(QBuffer::WriteOnly);
gunzip z;
z.set_maximul_size(100000);
z.decode(&reader, &buf);
in = buf.buffer();
}
}
// ファイル名を "-" にすると、リダイレクトで標準入力へ流し込める。
return determinFileType_("-", mime, [&](QString const &cmd, QByteArray *ba){
int r = misc2::runCommand(cmd, &in, ba);
if (r != 0) {
ba->clear();
}
});
}
QList<Git::Tag> BasicMainWindow::queryTagList()
{
QList<Git::Tag> list;
Git::CommitItem const *commit = selectedCommitItem();
if (commit && Git::isValidID(commit->commit_id)) {
list = findTag(commit->commit_id);
}
return list;
}
int BasicMainWindow::limitLogCount() const
{
int n = appsettings()->maximum_number_of_commit_item_acquisitions;
return (n >= 1 && n <= 100000) ? n : 10000;
}
TextEditorThemePtr BasicMainWindow::themeForTextEditor()
{
return global->theme->text_editor_theme;
}
Git::Object BasicMainWindow::cat_file_(GitPtr const &g, QString const &id)
{
if (isValidWorkingCopy(g)) {
QString path_prefix = PATH_PREFIX;
if (id.startsWith(path_prefix)) {
QString path = g->workingRepositoryDir();
path = path / id.mid(path_prefix.size());
QFile file(path);
if (file.open(QFile::ReadOnly)) {
Git::Object obj;
obj.content = file.readAll();
return obj;
}
} else if (Git::isValidID(id)) {
return getObjCache()->catFile(id);;
}
}
return Git::Object();
}
Git::Object BasicMainWindow::cat_file(QString const &id)
{
return cat_file_(git(), id);
}
QString BasicMainWindow::newTempFilePath()
{
QString tmpdir = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
QString path = tmpdir / tempfileHeader() + QString::number(m->temp_file_counter);
m->temp_file_counter++;
return path;
}
QString BasicMainWindow::findFileID(QString const &commit_id, QString const &file)
{
return lookupFileID(getObjCache(), commit_id, file);
}
void BasicMainWindow::updateFilesList(QString const &id, QList<Git::Diff> *diff_list, QListWidget *listwidget)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
listwidget->clear();
auto AddItem = [&](QString const &filename, QString header, int idiff){
if (header.isEmpty()) {
header = "(??\?) "; // damn trigraph
}
QListWidgetItem *item = new QListWidgetItem(filename);
item->setData(FilePathRole, filename);
item->setData(DiffIndexRole, idiff);
item->setData(HunkIndexRole, -1);
item->setData(HeaderRole, header);
listwidget->addItem(item);
};
GitDiff dm(getObjCache());
if (!dm.diff(id, diff_list)) return;
addDiffItems(diff_list, AddItem);
}
void BasicMainWindow::setAppSettings(const ApplicationSettings &appsettings)
{
m->appsettings = appsettings;
}
QPixmap BasicMainWindow::getTransparentPixmap() const
{
return m->transparent_pixmap;
}
QIcon BasicMainWindow::getSignatureBadIcon() const
{
return m->signature_bad_icon;
}
QIcon BasicMainWindow::getSignatureDubiousIcon() const
{
return m->signature_dubious_icon;
}
QIcon BasicMainWindow::getSignatureGoodIcon() const
{
return m->signature_good_icon;
}
QIcon BasicMainWindow::getFolderIcon() const
{
return m->folder_icon;
}
QIcon BasicMainWindow::getRepositoryIcon() const
{
return m->repository_icon;
}
const Git::CommitItemList &BasicMainWindow::getLogs() const
{
return m->logs;
}
Git::CommitItem const *BasicMainWindow::getLog(int index) const
{
return (index >= 0 && index < (int)m->logs.size()) ? &m->logs[index] : nullptr;
}
Git::CommitItemList *BasicMainWindow::getLogsPtr()
{
return &m->logs;
}
void BasicMainWindow::setLogs(const Git::CommitItemList &logs)
{
m->logs = logs;
}
void BasicMainWindow::clearLogs()
{
m->logs.clear();
}
BasicMainWindow::PtyCondition BasicMainWindow::getPtyCondition()
{
return m->pty_condition;
}
void BasicMainWindow::setPtyUserData(QVariant const &userdata)
{
m->pty_process.setVariant(userdata);
}
void BasicMainWindow::setPtyCondition(const PtyCondition &ptyCondition)
{
m->pty_condition = ptyCondition;
}
PtyProcess *BasicMainWindow::getPtyProcess()
{
return &m->pty_process;
}
bool BasicMainWindow::getPtyProcessOk() const
{
return m->pty_process_ok;
}
void BasicMainWindow::setPtyProcessOk(bool pty_process_ok)
{
m->pty_process_ok = pty_process_ok;
}
const QList<RepositoryItem> &BasicMainWindow::getRepos() const
{
return m->repos;
}
QList<RepositoryItem> *BasicMainWindow::getReposPtr()
{
return &m->repos;
}
void BasicMainWindow::setCurrentRemoteName(QString const &name)
{
m->current_remote_name = name;
}
AvatarLoader *BasicMainWindow::getAvatarLoader()
{
return &m->avatar_loader;
}
AvatarLoader const *BasicMainWindow::getAvatarLoader() const
{
return &m->avatar_loader;
}
int *BasicMainWindow::ptrUpdateFilesListCounter()
{
return &m->update_files_list_counter;
}
int *BasicMainWindow::ptrUpdateCommitTableCounter()
{
return &m->update_commit_table_counter;
}
bool BasicMainWindow::interactionCanceled() const
{
return m->interaction_canceled;
}
void BasicMainWindow::setInteractionCanceled(bool canceled)
{
m->interaction_canceled = canceled;
}
BasicMainWindow::InteractionMode BasicMainWindow::interactionMode() const
{
return m->interaction_mode;
}
void BasicMainWindow::setInteractionMode(const InteractionMode &im)
{
m->interaction_mode = im;
}
QString BasicMainWindow::getRepositoryFilterText() const
{
return m->repository_filter_text;
}
void BasicMainWindow::setRepositoryFilterText(QString const &text)
{
m->repository_filter_text = text;
}
void BasicMainWindow::setUncommitedChanges(bool uncommited_changes)
{
m->uncommited_changes = uncommited_changes;
}
QList<Git::Diff> *BasicMainWindow::diffResult()
{
return &m->diff_result;
}
std::map<QString, Git::Diff> *BasicMainWindow::getDiffCacheMap()
{
return &m->diff_cache;
}
bool BasicMainWindow::getRemoteChanged() const
{
return m->remote_changed;
}
void BasicMainWindow::setRemoteChanged(bool remote_changed)
{
m->remote_changed = remote_changed;
}
void BasicMainWindow::setServerType(const ServerType &server_type)
{
m->server_type = server_type;
}
GitHubRepositoryInfo *BasicMainWindow::ptrGitHub()
{
return &m->github;
}
std::map<int, QList<BasicMainWindow::Label>> *BasicMainWindow::getLabelMap()
{
return &m->label_map;
}
std::map<int, QList<BasicMainWindow::Label>> const *BasicMainWindow::getLabelMap() const
{
return &m->label_map;
}
void BasicMainWindow::clearLabelMap()
{
m->label_map.clear();
}
GitObjectCache *BasicMainWindow::getObjCache()
{
return &m->objcache;
}
bool BasicMainWindow::getForceFetch() const
{
return m->force_fetch;
}
void BasicMainWindow::setForceFetch(bool force_fetch)
{
m->force_fetch = force_fetch;
}
std::map<QString, QList<Git::Tag>> *BasicMainWindow::ptrTagMap()
{
return &m->tag_map;
}
QString BasicMainWindow::getHeadId() const
{
return m->head_id;
}
void BasicMainWindow::setHeadId(QString const &head_id)
{
m->head_id = head_id;
}
void BasicMainWindow::setPtyProcessCompletionData(QVariant const &value)
{
m->pty_process_completion_data = value;
}
QVariant const &BasicMainWindow::getTempRepoForCloneCompleteV() const
{
return m->pty_process_completion_data;
}
void BasicMainWindow::updateCommitGraph()
{
auto const &logs = getLogs();
auto *logsp = getLogsPtr();
const size_t LogCount = logs.size();
// 樹形図情報を構築する
if (LogCount > 0) {
auto LogItem = [&](size_t i)->Git::CommitItem &{ return logsp->at(i); };
enum { // 有向グラフを構築するあいだ CommitItem::marker_depth をフラグとして使用する
UNKNOWN = 0,
KNOWN = 1,
};
for (Git::CommitItem &item : *logsp) {
item.marker_depth = UNKNOWN;
}
// コミットハッシュを検索して、親コミットのインデックスを求める
for (size_t i = 0; i < LogCount; i++) {
Git::CommitItem *item = &LogItem(i);
item->parent_lines.clear();
if (item->parent_ids.empty()) {
item->resolved = true;
} else {
for (int j = 0; j < item->parent_ids.size(); j++) { // 親の数だけループ
QString const &parent_id = item->parent_ids[j]; // 親のハッシュ値
for (size_t k = i + 1; k < LogCount; k++) { // 親を探す
if (LogItem(k).commit_id == parent_id) { // ハッシュ値が一致したらそれが親
item->parent_lines.emplace_back(k); // インデックス値を記憶
LogItem(k).has_child = true;
LogItem(k).marker_depth = KNOWN;
item->resolved = true;
break;
}
}
}
}
}
std::vector<Element> elements; // 線分リスト
{ // 線分リストを作成する
std::deque<Task> tasks; // 未処理タスクリスト
{
for (size_t i = 0; i < LogCount; i++) {
Git::CommitItem *item = &LogItem(i);
if (item->marker_depth == UNKNOWN) {
int n = item->parent_lines.size(); // 最初のコミットアイテム
for (int j = 0; j < n; j++) {
tasks.emplace_back(i, j); // タスクを追加
}
}
item->marker_depth = UNKNOWN;
}
}
while (!tasks.empty()) { // タスクが残っているならループ
Element e;
Task task;
{ // 最初のタスクを取り出す
task = tasks.front();
tasks.pop_front();
}
e.indexes.push_back(task.index); // 先頭のインデックスを追加
int index = LogItem(task.index).parent_lines[task.parent].index; // 開始インデックス
while (index > 0 && (size_t)index < LogCount) { // 最後に到達するまでループ
e.indexes.push_back(index); // インデックスを追加
int n = LogItem(index).parent_lines.size(); // 親の数
if (n == 0) break; // 親がないなら終了
Git::CommitItem *item = &LogItem(index);
if (item->marker_depth == KNOWN) break; // 既知のアイテムに到達したら終了
item->marker_depth = KNOWN; // 既知のアイテムにする
for (int i = 1; i < n; i++) {
tasks.emplace_back(index, i); // タスク追加
}
index = LogItem(index).parent_lines[0].index; // 次の親(親リストの先頭の要素)
}
if (e.indexes.size() >= 2) {
elements.push_back(e);
}
}
}
// 線情報をクリア
for (Git::CommitItem &item : *logsp) {
item.marker_depth = -1;
item.parent_lines.clear();
}
// マークと線の深さを決める
if (!elements.empty()) {
{ // 優先順位を調整する
std::sort(elements.begin(), elements.end(), [](Element const &left, Element const &right){
int i = 0;
{ // 長いものを優先して左へ
int l = left.indexes.back() - left.indexes.front();
int r = right.indexes.back() - right.indexes.front();
i = r - l; // 降順
}
if (i == 0) {
// コミットが新しいものを優先して左へ
int l = left.indexes.front();
int r = right.indexes.front();
i = l - r; // 昇順
}
return i < 0;
});
// 子の無いブランチ(タグ等)が複数連続しているとき、古いコミットを右に寄せる
{
for (size_t i = 0; i + 1 < elements.size(); i++) {
Element *e = &elements[i];
int index1 = e->indexes.front();
if (index1 > 0 && !LogItem(index1).has_child) { // 子がない
// 新しいコミットを探す
for (size_t j = i + 1; j < elements.size(); j++) { // 現在位置より後ろを探す
Element *f = &elements[j];
int index2 = f->indexes.front();
if (index1 == index2 + 1) { // 一つだけ新しいコミット
Element t = std::move(*f);
elements.erase(elements.begin() + j); // 移動元を削除
elements.insert(elements.begin() + i, std::move(t)); // 現在位置に挿入
}
}
// 古いコミットを探す
size_t j = 0;
while (j < i) { // 現在位置より前を探す
Element *f = &elements[j];
int index2 = f->indexes.front();
if (index1 + 1 == index2) { // 一つだけ古いコミット
Element t = std::move(*f);
elements.erase(elements.begin() + j); // 移動元を削除
elements.insert(elements.begin() + i, std::move(t)); // 現在位置の次に挿入
index1 = index2;
f = e;
} else {
j++;
}
}
}
}
}
}
{ // 最初の線は深さを0にする
Element *e = &elements.front();
for (size_t i = 0; i < e->indexes.size(); i++) {
int index = e->indexes[i];
LogItem(index).marker_depth = 0; // マークの深さを設定
e->depth = 0; // 線の深さを設定
}
}
// 最初以外の線分の深さを決める
for (size_t i = 1; i < elements.size(); i++) { // 最初以外をループ
Element *e = &elements[i];
int depth = 1;
while (1) { // 失敗したら繰り返し
for (size_t j = 0; j < i; j++) { // 既に処理済みの線を調べる
Element const *f = &elements[j]; // 検査対象
if (e->indexes.size() == 2) { // 二つしかない場合
int from = e->indexes[0]; // 始点
int to = e->indexes[1]; // 終点
if (LogItem(from).has_child) {
for (size_t k = 0; k + 1 < f->indexes.size(); k++) { // 検査対象の全ての線分を調べる
int curr = f->indexes[k];
int next = f->indexes[k + 1];
if (from > curr && to == next) { // 決定済みの線に直結できるか判定
e->indexes.back() = from + 1; // 現在の一行下に直結する
e->depth = elements[j].depth; // 接続先の深さ
goto DONE; // 決定
}
}
}
}
if (depth == f->depth) { // 同じ深さ
if (e->indexes.back() > f->indexes.front() && e->indexes.front() < f->indexes.back()) { // 重なっている
goto FAIL; // この深さには線を置けないのでやりなおし
}
}
}
for (size_t j = 0; j < e->indexes.size(); j++) {
int index = e->indexes[j];
Git::CommitItem *item = &LogItem(index);
if (j == 0 && item->has_child) { // 最初のポイントで子がある場合
// nop
} else if ((j > 0 && j + 1 < e->indexes.size()) || item->marker_depth < 0) { // 最初と最後以外、または、未確定の場合
item->marker_depth = depth; // マークの深さを設定
}
}
e->depth = depth; // 深さを決定
goto DONE; // 決定
FAIL:;
depth++; // 一段深くして再挑戦
}
DONE:;
}
// 線情報を生成する
for (auto &e : elements) {
auto ColorNumber = [&](){ return e.depth; };
size_t count = e.indexes.size();
for (size_t i = 0; i + 1 < count; i++) {
int curr = e.indexes[i];
int next = e.indexes[i + 1];
TreeLine line(next, e.depth);
line.color_number = ColorNumber();
line.bend_early = (i + 2 < count || !LogItem(next).resolved);
if (i + 2 == count) {
int join = false;
if (count > 2) { // 直結ではない
join = true;
} else if (!LogItem(curr).has_child) { // 子がない
join = true;
int d = LogItem(curr).marker_depth; // 開始点の深さ
for (int j = curr + 1; j < next; j++) {
Git::CommitItem *item = &LogItem(j);
if (item->marker_depth == d) { // 衝突する
join = false; // 迂回する
break;
}
}
}
if (join) {
line.depth = LogItem(next).marker_depth; // 合流する先のアイテムの深さと同じにする
}
}
LogItem(curr).parent_lines.push_back(line); // 線を追加
}
}
} else {
if (LogCount == 1) { // コミットが一つだけ
LogItem(0).marker_depth = 0;
}
}
}
}
bool BasicMainWindow::fetch(GitPtr const &g, bool prune)
{
setPtyCondition(PtyCondition::Fetch);
setPtyProcessOk(true);
g->fetch(getPtyProcess(), prune);
while (1) {
if (getPtyProcess()->wait(1)) break;
QApplication::processEvents();
}
return getPtyProcessOk();
}
bool BasicMainWindow::fetch_tags_f(GitPtr const &g)
{
setPtyCondition(PtyCondition::Fetch);
setPtyProcessOk(true);
g->fetch_tags_f(getPtyProcess());
while (1) {
if (getPtyProcess()->wait(1)) break;
QApplication::processEvents();
}
return getPtyProcessOk();
}
bool BasicMainWindow::git_callback(void *cookie, const char *ptr, int len)
{
auto *mw = (BasicMainWindow *)cookie;
mw->emitWriteLog(QByteArray(ptr, len));
return true;
}
QString BasicMainWindow::selectCommand_(QString const &cmdname, QStringList const &cmdfiles, QStringList const &list, QString path, std::function<void (QString const &)> const &callback)
{
QString window_title = tr("Select %1 command");
window_title = window_title.arg(cmdfiles.front());
SelectCommandDialog dlg(this, cmdname, cmdfiles, path, list);
dlg.setWindowTitle(window_title);
if (dlg.exec() == QDialog::Accepted) {
path = dlg.selectedFile();
path = misc::normalizePathSeparator(path);
QFileInfo info(path);
if (info.isExecutable()) {
callback(path);
return path;
}
}
return QString();
}
QString BasicMainWindow::selectCommand_(QString const &cmdname, QString const &cmdfile, QStringList const &list, QString const &path, std::function<void (QString const &)> const &callback)
{
QStringList cmdfiles;
cmdfiles.push_back(cmdfile);
return selectCommand_(cmdname, cmdfiles, list, path, callback);
}
bool BasicMainWindow::checkGitCommand()
{
while (1) {
if (misc::isExecutable(gitCommand())) {
return true;
}
if (selectGitCommand(true).isEmpty()) {
close();
return false;
}
}
}
bool BasicMainWindow::checkFileCommand()
{
while (1) {
if (misc::isExecutable(global->file_command)) {
return true;
}
if (selectFileCommand(true).isEmpty()) {
close();
return false;
}
}
}
bool BasicMainWindow::checkExecutable(QString const &path)
{
if (QFileInfo(path).isExecutable()) {
return true;
}
QString text = "The specified program '%1' is not executable.\n";
text = text.arg(path);
writeLog(text);
return false;
}
void BasicMainWindow::internalSetCommand(QString const &path, bool save, QString const &name, QString *out)
{
if (!path.isEmpty() && checkExecutable(path)) {
if (save) {
MySettings s;
s.beginGroup("Global");
s.setValue(name, path);
s.endGroup();
}
*out = path;
} else {
*out = QString();
}
}
QStringList BasicMainWindow::whichCommand_(QString const &cmdfile1, QString const &cmdfile2)
{
QStringList list;
if (!cmdfile1.isEmpty()){
std::vector<std::string> vec;
FileUtil::qwhich(cmdfile1.toStdString(), &vec);
for (std::string const &s : vec) {
list.push_back(QString::fromStdString(s));
}
}
if (!cmdfile2.isEmpty()){
std::vector<std::string> vec;
FileUtil::qwhich(cmdfile2.toStdString(), &vec);
for (std::string const &s : vec) {
list.push_back(QString::fromStdString(s));
}
}
return list;
}
void BasicMainWindow::setWindowTitle_(Git::User const &user)
{
if (user.name.isEmpty() && user.email.isEmpty()) {
setWindowTitle(qApp->applicationName());
} else {
setWindowTitle(QString("%1 : %2 <%3>")
.arg(qApp->applicationName())
.arg(user.name)
.arg(user.email)
);
}
}
bool BasicMainWindow::execSetGlobalUserDialog()
{
SetGlobalUserDialog dlg(this);
if (dlg.exec() == QDialog::Accepted) {
GitPtr g = git();
Git::User user = dlg.user();
g->setUser(user, true);
updateWindowTitle(g);
return true;
}
return false;
}
bool BasicMainWindow::saveByteArrayAs(const QByteArray &ba, QString const &dstpath)
{
QFile file(dstpath);
if (file.open(QFile::WriteOnly)) {
file.write(ba);
file.close();
return true;
}
QString msg = "Failed to open the file '%1' for write";
msg = msg.arg(dstpath);
qDebug() << msg;
return false;
}
bool BasicMainWindow::saveFileAs(QString const &srcpath, QString const &dstpath)
{
QFile f(srcpath);
if (f.open(QFile::ReadOnly)) {
QByteArray ba = f.readAll();
if (saveByteArrayAs(ba, dstpath)) {
return true;
}
} else {
QString msg = "Failed to open the file '%1' for read";
msg = msg.arg(srcpath);
qDebug() << msg;
}
return false;
}
bool BasicMainWindow::saveBlobAs(QString const &id, QString const &dstpath)
{
Git::Object obj = cat_file(id);
if (!obj.content.isEmpty()) {
if (saveByteArrayAs(obj.content, dstpath)) {
return true;
}
} else {
QString msg = "Failed to get the content of the object '%1'";
msg = msg.arg(id);
qDebug() << msg;
}
return false;
}
void BasicMainWindow::revertAllFiles()
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
QString cmd = "git reset --hard HEAD";
if (askAreYouSureYouWantToRun(tr("Revert all files"), "> " + cmd)) {
g->resetAllFiles();
openRepository(true);
}
}
void BasicMainWindow::deleteTags(Git::CommitItem const &commit)
{
auto it = ptrTagMap()->find(commit.commit_id);
if (it != ptrTagMap()->end()) {
QStringList names;
QList<Git::Tag> const &tags = it->second;
for (Git::Tag const &tag : tags) {
names.push_back(tag.name);
}
deleteTags(names);
}
}
bool BasicMainWindow::isAvatarEnabled() const
{
return appsettings()->get_committer_icon;
}
bool BasicMainWindow::isGitHub() const
{
return m->server_type == ServerType::GitHub;
}
QStringList BasicMainWindow::remotes() const
{
return m->remotes;
}
QList<Git::Branch> BasicMainWindow::findBranch(QString const &id)
{
auto it = branchMapRef().find(id);
if (it != branchMapRef().end()) {
return it->second;
}
return QList<Git::Branch>();
}
QString BasicMainWindow::saveAsTemp(QString const &id)
{
QString path = newTempFilePath();
saveAs(id, path);
return path;
}
QString BasicMainWindow::tempfileHeader() const
{
QString name = "jp_soramimi_Guitar_%1_";
return name.arg(QApplication::applicationPid());
}
void BasicMainWindow::deleteTempFiles()
{
QString dir = QStandardPaths::writableLocation(QStandardPaths::TempLocation);
QString name = tempfileHeader();
QDirIterator it(dir, { name + "*" });
while (it.hasNext()) {
QString path = it.next();
QFile::remove(path);
}
}
QString BasicMainWindow::getCommitIdFromTag(QString const &tag)
{
return getObjCache()->getCommitIdFromTag(tag);
}
bool BasicMainWindow::isValidRemoteURL(QString const &url, QString const &sshkey)
{
if (url.indexOf('\"') >= 0) {
return false;
}
stopPtyProcess();
GitPtr g = git(QString(), sshkey);
QString cmd = "ls-remote \"%1\" HEAD";
cmd = cmd.arg(url);
bool f = g->git(cmd, false, false, getPtyProcess());
{
QTime time;
time.start();
while (!getPtyProcess()->wait(10)) {
if (time.elapsed() > 10000) {
f = false;
break;
}
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}
stopPtyProcess();
}
if (f) {
f = (getPtyProcess()->getExitCode() == 0);
}
QString line;
{
std::vector<char> v;
getPtyProcess()->readResult(&v);
if (!v.empty()) {
line = QString::fromUtf8(&v[0], v.size()).trimmed();
}
}
if (f) {
qDebug() << "This is a valid repository.";
int i = -1;
for (int j = 0; j < line.size(); j++) {
ushort c = line.utf16()[j];
if (QChar(c).isSpace()) {
i = j;
break;
}
}
QString head;
if (i == GIT_ID_LENGTH) {
QString id = line.mid(0, i);
QString name = line.mid(i + 1).trimmed();
qDebug() << id << name;
if (name == "HEAD" && Git::isValidID(id)) {
head = id;
}
}
if (head.isEmpty()) {
qDebug() << "But HEAD not found";
}
return true;
}
qDebug() << "This is not a repository.";
return false;
}
QString BasicMainWindow::getObjectID(QListWidgetItem *item)
{
int i = indexOfDiff(item);
if (i >= 0 && i < diffResult()->size()) {
Git::Diff const &diff = diffResult()->at(i);
return diff.blob.a_id;
}
return QString();
}
void BasicMainWindow::addWorkingCopyDir(QString dir, QString name, bool open)
{
if (dir.endsWith(".git")) {
int i = dir.size();
if (i > 4) {
ushort c = dir.utf16()[i - 5];
if (c == '/' || c == '\\') {
dir = dir.mid(0, i - 5);
}
}
}
if (!Git::isValidWorkingCopy(dir)) {
if (QFileInfo(dir).isDir()) {
QString text;
text += tr("The folder is not a valid git repository.") + '\n';
text += '\n';
text += dir + '\n';
text += '\n';
text += tr("Do you want to initialize it as a git repository ?") + '\n';
int r = QMessageBox::information(this, tr("Initialize Repository") , text, QMessageBox::Yes, QMessageBox::No);
if (r == QMessageBox::Yes) {
createRepository(dir);
}
}
return;
}
if (name.isEmpty()) {
name = makeRepositoryName(dir);
}
RepositoryItem item;
item.local_dir = dir;
item.name = name;
saveRepositoryBookmark(item);
if (open) {
setCurrentRepository(item, true);
GitPtr g = git(item.local_dir);
openRepository_(g);
}
}
QString BasicMainWindow::makeRepositoryName(QString const &loc)
{
int i = loc.lastIndexOf('/');
int j = loc.lastIndexOf('\\');
if (i < j) i = j;
if (i >= 0) {
i++;
j = loc.size();
if (loc.endsWith(".git")) {
j -= 4;
}
return loc.mid(i, j - i);
}
return QString();
}
void BasicMainWindow::clearAuthentication()
{
clearSshAuthentication();
m->http_uid.clear();
m->http_pwd.clear();
}
void BasicMainWindow::onAvatarUpdated()
{
updateCommitTableLater();
}
QStringList BasicMainWindow::findGitObject(const QString &id) const
{
QStringList list;
std::set<QString> set;
if (Git::isValidID(id)) {
{
QString a = id.mid(0, 2);
QString b = id.mid(2);
QString dir = m->current_repo.local_dir / ".git/objects" / a;
QDirIterator it(dir);
while (it.hasNext()) {
it.next();
QFileInfo info = it.fileInfo();
if (info.isFile()) {
QString c = info.fileName();
if (c.startsWith(b)) {
set.insert(set.end(), a + c);
}
}
}
}
{
QString dir = m->current_repo.local_dir / ".git/objects/pack";
QDirIterator it(dir);
while (it.hasNext()) {
it.next();
QFileInfo info = it.fileInfo();
if (info.isFile() && info.fileName().startsWith("pack-") && info.fileName().endsWith(".idx")) {
GitPackIdxV2 idx;
idx.parse(info.absoluteFilePath());
idx.each([&](GitPackIdxItem const *item){
if (item->id.startsWith(id)) {
set.insert(item->id);
}
return true;
});
}
}
}
for (QString const &s : set) {
list.push_back(s);
}
}
return list;
}
void BasicMainWindow::writeLog(const char *ptr, int len)
{
internalWriteLog(ptr, len);
}
void BasicMainWindow::writeLog(const QString &str)
{
std::string s = str.toStdString();
writeLog(s.c_str(), s.size());
}
void BasicMainWindow::emitWriteLog(QByteArray const &ba)
{
emit signalWriteLog(ba);
}
void BasicMainWindow::writeLog_(QByteArray ba)
{
if (!ba.isEmpty()) {
writeLog(ba.data(), ba.size());
}
}
void BasicMainWindow::queryRemotes(GitPtr const &g)
{
if (!g) return;
m->remotes = g->getRemotes();
std::sort(m->remotes.begin(), m->remotes.end());
}
void BasicMainWindow::msgNoRepositorySelected()
{
QMessageBox::warning(this, qApp->applicationName(), tr("No repository selected"));
}
bool BasicMainWindow::runOnRepositoryDir(std::function<void (QString)> const &callback, RepositoryItem const *repo)
{
if (!repo) {
repo = &m->current_repo;
}
QString dir = repo->local_dir;
dir.replace('\\', '/');
if (QFileInfo(dir).isDir()) {
callback(dir);
return true;
}
msgNoRepositorySelected();
return false;
}
void BasicMainWindow::clearSshAuthentication()
{
m->ssh_passphrase_user.clear();
m->ssh_passphrase_pass.clear();
}
QString BasicMainWindow::getFilePath(QListWidgetItem *item)
{
if (!item) return QString();
return item->data(FilePathRole).toString();
}
bool BasicMainWindow::isGroupItem(QTreeWidgetItem *item)
{
if (item) {
int index = item->data(0, IndexRole).toInt();
if (index == GroupItem) {
return true;
}
}
return false;
}
int BasicMainWindow::indexOfLog(QListWidgetItem *item)
{
if (!item) return -1;
return item->data(IndexRole).toInt();
}
int BasicMainWindow::indexOfDiff(QListWidgetItem *item)
{
if (!item) return -1;
return item->data(DiffIndexRole).toInt();
}
int BasicMainWindow::getHunkIndex(QListWidgetItem *item)
{
if (!item) return -1;
return item->data(HunkIndexRole).toInt();
}
void BasicMainWindow::initNetworking()
{
std::string http_proxy;
std::string https_proxy;
if (appsettings()->proxy_type == "auto") {
#ifdef Q_OS_WIN
http_proxy = misc::makeProxyServerURL(getWin32HttpProxy().toStdString());
#else
auto getienv = [](std::string const &name)->char const *{
char **p = environ;
while (*p) {
if (strncasecmp(*p, name.c_str(), name.size()) == 0) {
char const *e = *p + name.size();
if (*e == '=') {
return e + 1;
}
}
p++;
}
return nullptr;
};
char const *p;
p = getienv("http_proxy");
if (p) {
http_proxy = misc::makeProxyServerURL(std::string(p));
}
p = getienv("https_proxy");
if (p) {
https_proxy = misc::makeProxyServerURL(std::string(p));
}
#endif
} else if (appsettings()->proxy_type == "manual") {
http_proxy = appsettings()->proxy_server.toStdString();
}
webContext()->set_http_proxy(http_proxy);
webContext()->set_https_proxy(https_proxy);
}
QString BasicMainWindow::abbrevCommitID(Git::CommitItem const &commit)
{
return commit.commit_id.mid(0, 7);
}
bool BasicMainWindow::saveRepositoryBookmarks() const
{
QString path = getBookmarksFilePath();
return RepositoryBookmark::save(path, &getRepos());
}
QString BasicMainWindow::getBookmarksFilePath() const
{
return global->app_config_dir / "bookmarks.xml";
}
void BasicMainWindow::stopPtyProcess()
{
getPtyProcess()->stop();
QDir::setCurrent(m->starting_dir);
}
void BasicMainWindow::abortPtyProcess()
{
stopPtyProcess();
setPtyProcessOk(false);
setInteractionCanceled(true);
}
void BasicMainWindow::saveApplicationSettings()
{
SettingsDialog::saveSettings(&m->appsettings);
}
bool BasicMainWindow::execWelcomeWizardDialog()
{
WelcomeWizardDialog dlg(this);
dlg.set_git_command_path(appsettings()->git_command);
dlg.set_file_command_path(appsettings()->file_command);
dlg.set_default_working_folder(appsettings()->default_working_dir);
if (misc::isExecutable(appsettings()->git_command)) {
gitCommand() = appsettings()->git_command;
Git g(m->gcx, {}, {});
Git::User user = g.getUser(Git::Source::Global);
dlg.set_user_name(user.name);
dlg.set_user_email(user.email);
}
if (dlg.exec() == QDialog::Accepted) {
appsettings()->git_command = gitCommand() = dlg.git_command_path();
appsettings()->file_command = global->file_command = dlg.file_command_path();
appsettings()->default_working_dir = dlg.default_working_folder();
saveApplicationSettings();
if (misc::isExecutable(appsettings()->git_command)) {
GitPtr g = git();
Git::User user;
user.name = dlg.user_name();
user.email = dlg.user_email();
g->setUser(user, true);
}
return true;
}
return false;
}
void BasicMainWindow::execRepositoryPropertyDialog(RepositoryItem const &repo, bool open_repository_menu)
{
QString workdir = repo.local_dir;
if (workdir.isEmpty()) {
workdir = currentWorkingCopyDir();
}
QString name = repo.name;
if (name.isEmpty()) {
name = makeRepositoryName(workdir);
}
GitPtr g = git(workdir, repo.ssh_key);
RepositoryPropertyDialog dlg(this, &m->gcx, g, repo, open_repository_menu);
dlg.exec();
if (dlg.isRemoteChanged()) {
emit remoteInfoChanged();
}
}
void BasicMainWindow::execSetUserDialog(Git::User const &global_user, Git::User const &repo_user, QString const &reponame)
{
SetUserDialog dlg(this, global_user, repo_user, reponame);
if (dlg.exec() == QDialog::Accepted) {
GitPtr g = git();
Git::User user = dlg.user();
if (dlg.isGlobalChecked()) {
g->setUser(user, true);
}
if (dlg.isRepositoryChecked()) {
g->setUser(user, false);
}
updateWindowTitle(g);
}
}
void BasicMainWindow::setGitCommand(QString const &path, bool save)
{
internalSetCommand(path, save, "GitCommand", &m->gcx.git_command);
}
void BasicMainWindow::setFileCommand(QString const &path, bool save)
{
internalSetCommand(path, save, "FileCommand", &global->file_command);
}
void BasicMainWindow::setGpgCommand(QString const &path, bool save)
{
internalSetCommand(path, save, "GpgCommand", &global->gpg_command);
if (!global->gpg_command.isEmpty()) {
GitPtr g = git();
g->configGpgProgram(global->gpg_command, true);
}
}
void BasicMainWindow::setSshCommand(QString const &path, bool save)
{
internalSetCommand(path, save, "SshCommand", &m->gcx.ssh_command);
}
void BasicMainWindow::logGitVersion()
{
GitPtr g = git();
QString s = g->version();
if (!s.isEmpty()) {
s += '\n';
writeLog(s);
}
}
void BasicMainWindow::setUnknownRepositoryInfo()
{
setRepositoryInfo("---", "");
Git g(m->gcx, {}, {});
Git::User user = g.getUser(Git::Source::Global);
setWindowTitle_(user);
}
void BasicMainWindow::internalClearRepositoryInfo()
{
setHeadId(QString());
setCurrentBranch(Git::Branch());
setServerType(ServerType::Standard);
m->github = GitHubRepositoryInfo();
}
void BasicMainWindow::checkUser()
{
Git g(m->gcx, {}, {});
while (1) {
Git::User user = g.getUser(Git::Source::Global);
if (!user.name.isEmpty() && !user.email.isEmpty()) {
return; // ok
}
if (!execSetGlobalUserDialog()) {
return;
}
}
}
void BasicMainWindow::openRepository(bool validate, bool waitcursor, bool keep_selection)
{
if (validate) {
QString dir = currentWorkingCopyDir();
if (!QFileInfo(dir).isDir()) {
int r = QMessageBox::warning(this, tr("Open Repository"), dir + "\n\n" + tr("No such folder") + "\n\n" + tr("Remove from bookmark ?"), QMessageBox::Ok, QMessageBox::Cancel);
if (r == QMessageBox::Ok) {
removeSelectedRepositoryFromBookmark(false);
}
return;
}
if (!Git::isValidWorkingCopy(dir)) {
QMessageBox::warning(this, tr("Open Repository"), tr("Not a valid git repository") + "\n\n" + dir);
return;
}
}
if (waitcursor) {
OverrideWaitCursor;
openRepository(false, false, keep_selection);
return;
}
GitPtr g = git(); // ポインタの有効性チェックはしない(nullptrでも続行)
openRepository_(g, keep_selection);
}
void BasicMainWindow::updateRepository()
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
OverrideWaitCursor;
openRepository_(g);
}
void BasicMainWindow::reopenRepository(bool log, std::function<void(GitPtr const &)> const &callback)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
setRemoteMonitoringEnabled(false);
OverrideWaitCursor;
if (log) {
setLogEnabled(g, true);
AsyncExecGitThread_ th(g, callback);
th.start();
while (1) {
if (th.wait(1)) break;
QApplication::processEvents(QEventLoop::ExcludeUserInputEvents);
}
setLogEnabled(g, false);
} else {
callback(g);
}
openRepository_(g);
setRemoteMonitoringEnabled(true);
}
void BasicMainWindow::openSelectedRepository()
{
RepositoryItem const *repo = selectedRepositoryItem();
if (repo) {
setCurrentRepository(*repo, true);
openRepository(true);
}
}
//void BasicMainWindow::checkRemoteUpdate()
//{
// if (getPtyProcess()->isRunning()) return;
// emit signalCheckRemoteUpdate();
//}
bool BasicMainWindow::isThereUncommitedChanges() const
{
return m->uncommited_changes;
}
bool BasicMainWindow::makeDiff(QString id, QList<Git::Diff> *out)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return false;
Git::FileStatusList list = g->status_s();
setUncommitedChanges(!list.empty());
if (id.isEmpty() && !isThereUncommitedChanges()) {
id = getObjCache()->revParse("HEAD");
}
bool uncommited = (id.isEmpty() && isThereUncommitedChanges());
GitDiff dm(getObjCache());
if (uncommited) {
dm.diff_uncommited(out);
} else {
dm.diff(id, out);
}
return true; // success
}
void BasicMainWindow::addDiffItems(const QList<Git::Diff> *diff_list, const std::function<void (QString const &, QString, int)> &add_item)
{
for (int idiff = 0; idiff < diff_list->size(); idiff++) {
Git::Diff const &diff = diff_list->at(idiff);
QString header;
switch (diff.type) {
case Git::Diff::Type::Modify: header = "(chg) "; break;
case Git::Diff::Type::Copy: header = "(cpy) "; break;
case Git::Diff::Type::Rename: header = "(ren) "; break;
case Git::Diff::Type::Create: header = "(add) "; break;
case Git::Diff::Type::Delete: header = "(del) "; break;
case Git::Diff::Type::ChType: header = "(chg) "; break;
case Git::Diff::Type::Unmerged: header = "(unmerged) "; break;
}
add_item(diff.path, header, idiff);
}
}
Git::CommitItemList BasicMainWindow::retrieveCommitLog(GitPtr const &g)
{
Git::CommitItemList list = g->log(limitLogCount());
// 親子関係を調べて、順番が狂っていたら、修正する。
std::set<QString> set;
const size_t count = list.size();
size_t limit = count;
size_t i = 0;
while (i < count) {
size_t newpos = -1;
for (QString const &parent : list[i].parent_ids) {
if (set.find(parent) != set.end()) {
for (size_t j = 0; j < i; j++) {
if (parent == list[j].commit_id) {
if (newpos == (size_t)-1 || j < newpos) {
newpos = j;
}
qDebug() << "fix commit order" << list[i].commit_id;
break;
}
}
}
}
set.insert(set.end(), list[i].commit_id);
if (newpos != (size_t)-1) {
if (limit == 0) break; // まず無いと思うが、もし、無限ループに陥ったら
Git::CommitItem t = list[i];
t.strange_date = true;
list.erase(list.begin() + i);
list.insert(list.begin() + newpos, t);
i = newpos;
limit--;
}
i++;
}
return list;
}
void BasicMainWindow::queryBranches(GitPtr const &g)
{
Q_ASSERT(g);
m->branch_map.clear();
QList<Git::Branch> branches = g->branches();
for (Git::Branch const &b : branches) {
if (b.isCurrent()) {
setCurrentBranch(b);
}
branchMapRef()[b.id].append(b);
}
}
std::map<QString, QList<Git::Branch>> &BasicMainWindow::branchMapRef()
{
return m->branch_map;
}
void BasicMainWindow::updateCommitTableLater()
{
*ptrUpdateCommitTableCounter() = 200;
}
void BasicMainWindow::updateRemoteInfo()
{
queryRemotes(git());
m->current_remote_name = QString();
{
Git::Branch const &r = currentBranch();
m->current_remote_name = r.remote;
}
if (m->current_remote_name.isEmpty()) {
if (m->remotes.size() == 1) {
m->current_remote_name = m->remotes[0];
}
}
emit remoteInfoChanged();
}
void BasicMainWindow::updateWindowTitle(GitPtr const &g)
{
if (isValidWorkingCopy(g)) {
Git::User user = g->getUser(Git::Source::Default);
setWindowTitle_(user);
} else {
setUnknownRepositoryInfo();
}
}
QString BasicMainWindow::makeCommitInfoText(int row, QList<BasicMainWindow::Label> *label_list)
{
QString message_ex;
Git::CommitItem const *commit = &getLogs()[row];
{ // branch
if (label_list) {
if (commit->commit_id == getHeadId()) {
Label label(Label::Head);
label.text = "HEAD";
label_list->push_back(label);
}
}
QList<Git::Branch> list = findBranch(commit->commit_id);
for (Git::Branch const &b : list) {
if (b.flags & Git::Branch::HeadDetachedAt) continue;
if (b.flags & Git::Branch::HeadDetachedFrom) continue;
Label label(Label::LocalBranch);
label.text = b.name;
if (!b.remote.isEmpty()) {
label.kind = Label::RemoteBranch;
label.text = "remotes" / b.remote / label.text;
}
if (b.ahead > 0) {
label.info += tr(", %1 ahead").arg(b.ahead);
}
if (b.behind > 0) {
label.info += tr(", %1 behind").arg(b.behind);
}
message_ex += " {" + label.text + label.info + '}';
if (label_list) label_list->push_back(label);
}
}
{ // tag
QList<Git::Tag> list = findTag(commit->commit_id);
for (Git::Tag const &t : list) {
Label label(Label::Tag);
label.text = t.name;
message_ex += QString(" {#%1}").arg(label.text);
if (label_list) label_list->push_back(label);
}
}
return message_ex;
}
void BasicMainWindow::removeRepositoryFromBookmark(int index, bool ask)
{
if (ask) {
int r = QMessageBox::warning(this, tr("Confirm Remove"), tr("Are you sure you want to remove the repository from bookmarks ?") + '\n' + tr("(Files will NOT be deleted)"), QMessageBox::Ok, QMessageBox::Cancel);
if (r != QMessageBox::Ok) return;
}
auto *repos = getReposPtr();
if (index >= 0 && index < repos->size()) {
repos->erase(repos->begin() + index);
saveRepositoryBookmarks();
updateRepositoriesList();
}
}
void BasicMainWindow::clone(QString url, QString dir)
{
if (!isOnlineMode()) return;
while (1) {
dir = defaultWorkingDir();
CloneDialog dlg(this, url, dir, &m->gcx);
if (dlg.exec() != QDialog::Accepted) {
return;
}
url = dlg.url();
dir = dlg.dir();
if (dlg.action() == CloneDialog::Action::Clone) {
// 既存チェック
QFileInfo info(dir);
if (info.isFile()) {
QString msg = dir + "\n\n" + tr("A file with same name already exists");
QMessageBox::warning(this, tr("Clone"), msg);
continue;
}
if (info.isDir()) {
QString msg = dir + "\n\n" + tr("A folder with same name already exists");
QMessageBox::warning(this, tr("Clone"), msg);
continue;
}
// クローン先ディレクトリを求める
Git::CloneData clone_data = Git::preclone(url, dir);
// クローン先ディレクトリの存在チェック
QString basedir = misc::normalizePathSeparator(clone_data.basedir);
if (!QFileInfo(basedir).isDir()) {
int i = basedir.indexOf('/');
int j = basedir.indexOf('\\');
if (i < j) i = j;
if (i < 0) {
QString msg = basedir + "\n\n" + tr("Invalid folder");
QMessageBox::warning(this, tr("Clone"), msg);
continue;
}
QString msg = basedir + "\n\n" + tr("No such folder. Create it now ?");
if (QMessageBox::warning(this, tr("Clone"), msg, QMessageBox::Ok, QMessageBox::Cancel) != QMessageBox::Ok) {
continue;
}
// ディレクトリを作成
QString base = basedir.mid(0, i + 1);
QString sub = basedir.mid(i + 1);
QDir(base).mkpath(sub);
}
RepositoryItem data;
data.local_dir = dir;
data.local_dir.replace('\\', '/');
data.name = makeRepositoryName(dir);
data.ssh_key = dlg.overridedSshKey();
GitPtr g = git(QString(), data.ssh_key);
setPtyUserData(QVariant::fromValue<RepositoryItem>(data));
setPtyCondition(PtyCondition::Clone);
setPtyProcessOk(true);
g->clone(clone_data, getPtyProcess());
} else if (dlg.action() == CloneDialog::Action::AddExisting) {
addWorkingCopyDir(dir, true);
}
return; // done
}
}
void BasicMainWindow::checkout()
{
checkout(this, selectedCommitItem());
}
void BasicMainWindow::commit(bool amend)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
QString message;
+ QString previousMessage;
if (amend) {
message = getLogs()[0].message;
} else {
QString id = g->getCherryPicking();
if (Git::isValidID(id)) {
message = g->getMessage(id);
+ } else {
+ for (Git::CommitItem const &item : getLogs()) {
+ if (!item.commit_id.isEmpty()) {
+ previousMessage = item.message;
+ break;
+ }
+ }
}
}
while (1) {
Git::User user = g->getUser(Git::Source::Default);
QString sign_id = g->signingKey(Git::Source::Default);
gpg::Data key;
{
QList<gpg::Data> keys;
gpg::listKeys(global->gpg_command, &keys);
for (gpg::Data const &k : keys) {
if (k.id == sign_id) {
key = k;
}
}
}
- CommitDialog dlg(this, currentRepositoryName(), user, key);
+ CommitDialog dlg(this, currentRepositoryName(), user, key, previousMessage);
dlg.setText(message);
if (dlg.exec() == QDialog::Accepted) {
QString text = dlg.text();
if (text.isEmpty()) {
QMessageBox::warning(this, tr("Commit"), tr("Commit message can not be omitted."));
continue;
}
bool sign = dlg.isSigningEnabled();
bool ok;
- if (amend) {
+ if (amend || dlg.isAmend()) {
ok = g->commit_amend_m(text, sign, getPtyProcess());
} else {
ok = g->commit(text, sign, getPtyProcess());
}
if (ok) {
setForceFetch(true);
updateStatusBarText();
openRepository(true);
} else {
QString err = g->errorMessage().trimmed();
err += "\n*** ";
err += tr("Failed to commit");
err += " ***\n";
writeLog(err);
}
}
break;
}
}
void BasicMainWindow::commitAmend()
{
commit(true);
}
void BasicMainWindow::pushSetUpstream(QString const &remote, QString const &branch)
{
if (remote.isEmpty()) return;
if (branch.isEmpty()) return;
int exitcode = 0;
QString errormsg;
reopenRepository(true, [&](GitPtr g){
g->push_u(remote, branch, getPtyProcess());
while (1) {
if (getPtyProcess()->wait(1)) break;
QApplication::processEvents();
}
exitcode = getPtyProcess()->getExitCode();
errormsg = getPtyProcess()->getMessage();
});
if (exitcode == 128) {
if (errormsg.indexOf("Connection refused") >= 0) {
QMessageBox::critical(this, qApp->applicationName(), tr("Connection refused."));
return;
}
}
updateRemoteInfo();
}
bool BasicMainWindow::pushSetUpstream(bool testonly)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return false;
QStringList remotes = g->getRemotes();
QString current_branch = currentBranchName();
QStringList branches;
for (Git::Branch const &b : g->branches()) {
branches.push_back(b.name);
}
if (remotes.isEmpty() || branches.isEmpty()) {
return false;
}
if (testonly) {
return true;
}
PushDialog dlg(this, remotes, branches, PushDialog::RemoteBranch(QString(), current_branch));
if (dlg.exec() == QDialog::Accepted) {
PushDialog::Action a = dlg.action();
if (a == PushDialog::PushSimple) {
push();
} else if (a == PushDialog::PushSetUpstream) {
QString remote = dlg.remote();
QString branch = dlg.branch();
pushSetUpstream(remote, branch);
}
return true;
}
return false;
}
void BasicMainWindow::push()
{
if (!isOnlineMode()) return;
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
if (g->getRemotes().isEmpty()) {
QMessageBox::warning(this, qApp->applicationName(), tr("No remote repository is registered."));
RepositoryItem const &repo = currentRepository();
execRepositoryPropertyDialog(repo, true);
return;
}
int exitcode = 0;
QString errormsg;
reopenRepository(true, [&](GitPtr g){
g->push(false, getPtyProcess());
while (1) {
if (getPtyProcess()->wait(1)) break;
QApplication::processEvents();
}
exitcode = getPtyProcess()->getExitCode();
errormsg = getPtyProcess()->getMessage();
});
if (exitcode == 128) {
if (errormsg.indexOf("no upstream branch") >= 0) {
QString brname = currentBranchName();
QString msg = tr("The current branch %1 has no upstream branch.");
msg = msg.arg(brname);
msg += '\n';
msg += tr("You try push --set-upstream");
QMessageBox::warning(this, qApp->applicationName(), msg);
pushSetUpstream(false);
return;
}
if (errormsg.indexOf("Connection refused") >= 0) {
QMessageBox::critical(this, qApp->applicationName(), tr("Connection refused."));
return;
}
}
}
#ifdef Q_OS_MAC
namespace {
bool isValidDir(QString const &dir)
{
if (dir.indexOf('\"') >= 0 || dir.indexOf('\\') >= 0) return false;
return QFileInfo(dir).isDir();
}
}
#include <QProcess>
#endif
void BasicMainWindow::openTerminal(RepositoryItem const *repo)
{
runOnRepositoryDir([](QString dir){
#ifdef Q_OS_MAC
if (!isValidDir(dir)) return;
QString cmd = "open -n -a /Applications/Utilities/Terminal.app --args \"%1\"";
cmd = cmd.arg(dir);
QProcess::execute(cmd);
#else
Terminal::open(dir);
#endif
}, repo);
}
void BasicMainWindow::openExplorer(RepositoryItem const *repo)
{
runOnRepositoryDir([](QString dir){
#ifdef Q_OS_MAC
if (!isValidDir(dir)) return;
QString cmd = "open \"%1\"";
cmd = cmd.arg(dir);
QProcess::execute(cmd);
#else
QDesktopServices::openUrl(dir);
#endif
}, repo);
}
Git::CommitItem const *BasicMainWindow::selectedCommitItem() const
{
int i = selectedLogIndex();
return commitItem(i);
}
void BasicMainWindow::deleteBranch(Git::CommitItem const *commit)
{
if (!commit) return;
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
QStringList all_branch_names;
QStringList current_local_branch_names;
{
NamedCommitList named_commits = namedCommitItems(Branches);
for (NamedCommitItem const &item : named_commits) {
if (item.name == "HEAD") continue;
if (item.id == commit->commit_id) {
current_local_branch_names.push_back(item.name);
}
all_branch_names.push_back(item.name);
}
}
DeleteBranchDialog dlg(this, false, all_branch_names, current_local_branch_names);
if (dlg.exec() == QDialog::Accepted) {
setLogEnabled(g, true);
QStringList names = dlg.selectedBranchNames();
int count = 0;
for (QString const &name : names) {
if (g->git(QString("branch -D \"%1\"").arg(name))) {
count++;
} else {
writeLog(tr("Failed to delete the branch '%1'").arg(name) + '\n');
}
}
if (count > 0) {
openRepository(true, true, true);
}
}
}
void BasicMainWindow::deleteBranch()
{
deleteBranch(selectedCommitItem());
}
QStringList MainWindow::remoteBranches(QString const &id, QStringList *all)
{
if (all) all->clear();
QStringList list;
GitPtr g = git();
if (isValidWorkingCopy(g)) {
NamedCommitList named_commits = namedCommitItems(Branches | Remotes);
for (NamedCommitItem const &item : named_commits) {
if (item.id == id && !item.remote.isEmpty()) {
list.push_back(item.remote / item.name);
}
if (all && !item.remote.isEmpty() && item.name != "HEAD") {
all->push_back(item.remote / item.name);
}
}
}
return list;
}
void MainWindow::deleteRemoteBranch(Git::CommitItem const *commit)
{
if (!commit) return;
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
QStringList all_branches;
QStringList remote_branches = remoteBranches(commit->commit_id, &all_branches);
if (remote_branches.isEmpty()) return;
DeleteBranchDialog dlg(this, true, all_branches, remote_branches);
if (dlg.exec() == QDialog::Accepted) {
setLogEnabled(g, true);
QStringList names = dlg.selectedBranchNames();
for (QString const &name : names) {
int i = name.indexOf('/');
if (i > 0) {
QString remote = name.mid(0, i);
QString branch = ':' + name.mid(i + 1);
pushSetUpstream(remote, branch);
}
}
}
}
bool BasicMainWindow::askAreYouSureYouWantToRun(QString const &title, QString const &command)
{
QString message = tr("Are you sure you want to run the following command ?");
QString text = "%1\n\n%2";
text = text.arg(message).arg(command);
return QMessageBox::warning(this, title, text, QMessageBox::Ok, QMessageBox::Cancel) == QMessageBox::Ok;
}
bool BasicMainWindow::editFile(QString const &path, QString const &title)
{
return TextEditDialog::editFile(this, path, title);
}
void BasicMainWindow::resetFile(QStringList const &paths)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
if (paths.isEmpty()) {
// nop
} else {
QString cmd = "git checkout -- \"%1\"";
cmd = cmd.arg(paths[0]);
if (askAreYouSureYouWantToRun(tr("Reset a file"), "> " + cmd)) {
for (QString const &path : paths) {
g->resetFile(path);
}
openRepository(true);
}
}
}
void BasicMainWindow::saveRepositoryBookmark(RepositoryItem item)
{
if (item.local_dir.isEmpty()) return;
if (item.name.isEmpty()) {
item.name = tr("Unnamed");
}
auto *repos = getReposPtr();
bool done = false;
for (auto &repo : *repos) {
RepositoryItem *p = &repo;
if (item.local_dir == p->local_dir) {
*p = item;
done = true;
break;
}
}
if (!done) {
repos->push_back(item);
}
saveRepositoryBookmarks();
updateRepositoriesList();
}
void BasicMainWindow::setCurrentRepository(RepositoryItem const &repo, bool clear_authentication)
{
if (clear_authentication) {
clearAuthentication();
}
m->current_repo = repo;
}
void BasicMainWindow::internalDeleteTags(QStringList const &tagnames)
{
GitPtr g = git();
if (!isValidWorkingCopy(g)) return;
if (!tagnames.isEmpty()) {
reopenRepository(false, [&](GitPtr g){
for (QString const &name : tagnames) {
g->delete_tag(name, true);
}
});
}
}
bool BasicMainWindow::internalAddTag(QString const &name)
{
if (name.isEmpty()) return false;
GitPtr g = git();
if (!isValidWorkingCopy(g)) return false;
QString commit_id;
Git::CommitItem const *commit = selectedCommitItem();
if (commit && !commit->commit_id.isEmpty()) {
commit_id = commit->commit_id;
}
if (!Git::isValidID(commit_id)) return false;
bool ok = false;
reopenRepository(false, [&](GitPtr g){
ok = g->tag(name, commit_id);
});
return ok;
}
NamedCommitList BasicMainWindow::namedCommitItems(int flags)
{
NamedCommitList items;
if (flags & Branches) {
for (auto const &pair: branchMapRef()) {
QList<Git::Branch> const &list = pair.second;
for (Git::Branch const &b : list) {
if (b.isHeadDetached()) continue;
if (flags & NamedCommitFlag::Remotes) {
// nop
} else {
if (!b.remote.isEmpty()) continue;
}
NamedCommitItem item;
if (b.remote.isEmpty()) {
if (b.name == "HEAD") {
item.type = NamedCommitItem::Type::None;
} else {
item.type = NamedCommitItem::Type::BranchLocal;
}
} else {
item.type = NamedCommitItem::Type::BranchRemote;
item.remote = b.remote;
}
item.name = b.name;
item.id = b.id;
items.push_back(item);
}
}
}
if (flags & Tags) {
for (auto const &pair: *ptrTagMap()) {
QList<Git::Tag> const &list = pair.second;
for (Git::Tag const &t : list) {
NamedCommitItem item;
item.type = NamedCommitItem::Type::Tag;
item.name = t.name;
item.id = t.id;
if (item.name.startsWith("refs/tags/")) {
item.name = item.name.mid(10);
}
items.push_back(item);
}
}
}
return items;
}
int BasicMainWindow::rowFromCommitId(QString const &id)
{
auto const &logs = getLogs();
for (size_t i = 0; i < logs.size(); i++) {
Git::CommitItem const &item = logs[i];
if (item.commit_id == id) {
return (int)i;
}
}
return -1;
}
void BasicMainWindow::createRepository(QString const &dir)
{
CreateRepositoryDialog dlg(this, dir);
if (dlg.exec() == QDialog::Accepted) {
QString path = dlg.path();
if (QFileInfo(path).isDir()) {
if (Git::isValidWorkingCopy(path)) {
// A valid git repository already exists there.
} else {
GitPtr g = git(path);
if (g->init()) {
QString name = dlg.name();
if (!name.isEmpty()) {
addWorkingCopyDir(path, name, true);
}
QString remote_name = dlg.remoteName();
QString remote_url = dlg.remoteURL();
if (!remote_name.isEmpty() && !remote_url.isEmpty()) {
Git::Remote r;
r.name = remote_name;
r.url = remote_url;
g->addRemoteURL(r);
}
}
}
} else {
// not dir
}
}
}
void BasicMainWindow::setLogEnabled(GitPtr const &g, bool f)
{
if (f) {
g->setLogCallback(git_callback, this);
} else {
g->setLogCallback(nullptr, nullptr);
}
}
QList<Git::Tag> BasicMainWindow::findTag(QString const &id)
{
auto it = ptrTagMap()->find(id);
if (it != ptrTagMap()->end()) {
return it->second;
}
return QList<Git::Tag>();
}
void BasicMainWindow::sshSetPassphrase(std::string const &user, std::string const &pass)
{
m->ssh_passphrase_user = user;
m->ssh_passphrase_pass = pass;
}
std::string BasicMainWindow::sshPassphraseUser() const
{
return m->ssh_passphrase_user;
}
std::string BasicMainWindow::sshPassphrasePass() const
{
return m->ssh_passphrase_pass;
}
void BasicMainWindow::httpSetAuthentication(std::string const &user, std::string const &pass)
{
m->http_uid = user;
m->http_pwd = pass;
}
std::string BasicMainWindow::httpAuthenticationUser() const
{
return m->http_uid;
}
std::string BasicMainWindow::httpAuthenticationPass() const
{
return m->http_pwd;
}
void BasicMainWindow::doGitCommand(std::function<void(GitPtr g)> const &callback)
{
GitPtr g = git();
if (isValidWorkingCopy(g)) {
OverrideWaitCursor;
callback(g);
openRepository(false, false);
}
}
diff --git a/src/CommitDialog.cpp b/src/CommitDialog.cpp
index b4af67d..d37e6c4 100644
--- a/src/CommitDialog.cpp
+++ b/src/CommitDialog.cpp
@@ -1,95 +1,111 @@
#include "CommitDialog.h"
#include "ui_CommitDialog.h"
#include "BasicMainWindow.h"
#include "ConfigSigningDialog.h"
#include <QDir>
-CommitDialog::CommitDialog(BasicMainWindow *parent, QString const &reponame, Git::User const &user, gpg::Data const &key)
+CommitDialog::CommitDialog(BasicMainWindow *parent, QString const &reponame, Git::User const &user, gpg::Data const &key, QString const &previousMessage)
: QDialog(parent)
, ui(new Ui::CommitDialog)
{
ui->setupUi(this);
Qt::WindowFlags flags = windowFlags();
flags &= ~Qt::WindowContextHelpButtonHint;
setWindowFlags(flags);
key_ = key;
+ previousMessage_ = previousMessage;
ui->label_reponame->setText(reponame);
ui->label_commit_author->setText(user.name);
ui->label_commit_mail->setText(user.email);
+ ui->checkbox_amend->setChecked(false);
+ if (previousMessage_.isEmpty()) {
+ ui->checkbox_amend->hide();
+ }
+
updateSigningInfo();
ui->plainTextEdit->setFocus();
}
CommitDialog::~CommitDialog()
{
delete ui;
}
BasicMainWindow *CommitDialog::mainwindow()
{
return qobject_cast<BasicMainWindow *>(parent());
}
void CommitDialog::updateSigningInfo()
{
GitPtr g = mainwindow()->git();
Git::SignPolicy pol = g->signPolicy(Git::Source::Default);
if (!key_.id.isEmpty()) {
if (pol == Git::SignPolicy::True) {
ui->groupBox_gpg_sign->setCheckable(false);
} else {
ui->groupBox_gpg_sign->setCheckable(true);
ui->groupBox_gpg_sign->setChecked(false);
}
ui->label_sign_id->setText(key_.id);
ui->label_sign_name->setText(key_.name);
ui->label_sign_mail->setText(key_.mail);
} else {
ui->groupBox_gpg_sign->setChecked(false);
ui->groupBox_gpg_sign->setEnabled(false);
}
}
bool CommitDialog::isSigningEnabled() const
{
return ui->groupBox_gpg_sign->isChecked();
}
+bool CommitDialog::isAmend() const
+{
+ return ui->checkbox_amend->isChecked();
+}
+
void CommitDialog::setText(QString const &text)
{
ui->plainTextEdit->setPlainText(text);
QTextCursor cur = ui->plainTextEdit->textCursor();
cur.movePosition(QTextCursor::End, QTextCursor::MoveAnchor);
ui->plainTextEdit->setTextCursor(cur);
}
QString CommitDialog::text() const
{
return ui->plainTextEdit->toPlainText();
}
void CommitDialog::keyPressEvent(QKeyEvent *event)
{
if (event->modifiers() & Qt::ControlModifier) {
if (event->key() == Qt::Key_Return || event->key() == Qt::Key_Enter) {
event->accept();
accept();
return;
}
}
QDialog::keyPressEvent(event);
}
void CommitDialog::on_pushButton_config_signing_clicked()
{
ConfigSigningDialog dlg(this, mainwindow(), true);
if (dlg.exec() == QDialog::Accepted) {
updateSigningInfo();
}
}
+
+void CommitDialog::on_checkbox_amend_stateChanged(int state)
+{
+ setText(state == Qt::Checked ? previousMessage_ : QString(""));
+}
diff --git a/src/CommitDialog.h b/src/CommitDialog.h
index dcbbad1..878f154 100644
--- a/src/CommitDialog.h
+++ b/src/CommitDialog.h
@@ -1,37 +1,40 @@
#ifndef COMMITDIALOG_H
#define COMMITDIALOG_H
#include "Git.h"
#include "gpg.h"
#include <QDialog>
class BasicMainWindow;
namespace Ui {
class CommitDialog;
}
class CommitDialog : public QDialog {
Q_OBJECT
public:
- explicit CommitDialog(BasicMainWindow *parent, QString const &reponame, Git::User const &user, gpg::Data const &key);
+ explicit CommitDialog(BasicMainWindow *parent, QString const &reponame, Git::User const &user, gpg::Data const &key, QString const &previousMessage);
~CommitDialog() override;
void setText(QString const &text);
QString text() const;
bool isSigningEnabled() const;
+ bool isAmend() const;
protected:
void keyPressEvent(QKeyEvent *event) override;
private:
Ui::CommitDialog *ui;
gpg::Data key_;
+ QString previousMessage_;
// QDialog interface
BasicMainWindow *mainwindow();
void updateSigningInfo();
private slots:
void on_pushButton_config_signing_clicked();
+ void on_checkbox_amend_stateChanged(int state);
};
#endif // COMMITDIALOG_H
diff --git a/src/CommitDialog.ui b/src/CommitDialog.ui
index 075d1a5..866dd8d 100644
--- a/src/CommitDialog.ui
+++ b/src/CommitDialog.ui
@@ -1,276 +1,290 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>CommitDialog</class>
<widget class="QDialog" name="CommitDialog">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>568</width>
<height>389</height>
</rect>
</property>
<property name="windowTitle">
<string>Commit</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QLabel" name="label_reponame">
<property name="font">
<font>
<pointsize>16</pointsize>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QFormLayout" name="formLayout_2">
<property name="labelAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>Author</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_commit_author">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>---</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>Mail</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_commit_mail">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>---</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QGroupBox" name="groupBox_gpg_sign">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="title">
<string>GPG Signing</string>
</property>
<property name="checkable">
<bool>true</bool>
</property>
<layout class="QFormLayout" name="formLayout">
<property name="labelAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignVCenter</set>
</property>
<property name="formAlignment">
<set>Qt::AlignLeading|Qt::AlignLeft|Qt::AlignTop</set>
</property>
<item row="0" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>ID</string>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLabel" name="label_sign_id">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>---</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLabel" name="label_sign_name">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>---</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="label_6">
<property name="text">
<string>Mail</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLabel" name="label_sign_mail">
<property name="font">
<font>
<weight>75</weight>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>---</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_config_signing">
<property name="text">
<string>Configure...</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
- <widget class="QLabel" name="label">
- <property name="text">
- <string>Message</string>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <property name="topMargin">
+ <number>0</number>
</property>
- </widget>
+ <item alignment="Qt::AlignLeft">
+ <widget class="QLabel" name="label">
+ <property name="text">
+ <string>Message</string>
+ </property>
+ </widget>
+ </item>
+ <item alignment="Qt::AlignRight">
+ <widget class="QCheckBox" name="checkbox_amend">
+ <property name="text">
+ <string>Amend</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
<item>
<widget class="QPlainTextEdit" name="plainTextEdit"/>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QPushButton" name="pushButton">
<property name="text">
<string>OK</string>
</property>
<property name="default">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="pushButton_2">
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
</layout>
</item>
</layout>
</widget>
<resources/>
<connections>
<connection>
<sender>pushButton</sender>
<signal>clicked()</signal>
<receiver>CommitDialog</receiver>
<slot>accept()</slot>
<hints>
<hint type="sourcelabel">
<x>398</x>
<y>345</y>
</hint>
<hint type="destinationlabel">
<x>370</x>
<y>346</y>
</hint>
</hints>
</connection>
<connection>
<sender>pushButton_2</sender>
<signal>clicked()</signal>
<receiver>CommitDialog</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>544</x>
<y>344</y>
</hint>
<hint type="destinationlabel">
<x>562</x>
<y>342</y>
</hint>
</hints>
</connection>
</connections>
</ui>
diff --git a/src/resources/translations/Guitar_ja.qm b/src/resources/translations/Guitar_ja.qm
index 409739b..b9faeaa 100644
Binary files a/src/resources/translations/Guitar_ja.qm and b/src/resources/translations/Guitar_ja.qm differ
diff --git a/src/resources/translations/Guitar_ja.ts b/src/resources/translations/Guitar_ja.ts
index 20ad774..249482d 100644
--- a/src/resources/translations/Guitar_ja.ts
+++ b/src/resources/translations/Guitar_ja.ts
@@ -1,2986 +1,3041 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ja_JP">
<context>
<name>AboutDialog</name>
<message>
<location filename="../../AboutDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="34"/>
<location filename="../../AboutDialog.ui" line="46"/>
<location filename="../../AboutDialog.ui" line="58"/>
<location filename="../../AboutDialog.ui" line="70"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="86"/>
<source>&lt;a href=&quot;https://github.com/soramimi/Guitar&quot;&gt;https://github.com/soramimi/Guitar&lt;/a&gt;</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.cpp" line="25"/>
<source>About %1</source>
<translation>%1 について</translation>
</message>
</context>
<context>
<name>AreYouSureYouWantToContinueConnectingDialog</name>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="14"/>
<source>Unknown Host</source>
<translation>不明なホスト</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="20"/>
<source>Are you sure you want to continue connecting (yes/no)?</source>
<translation>接続を続行しますか? (yes/no)?</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="52"/>
<source>Continue</source>
<translation>続行</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="59"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
</context>
<context>
<name>BasicMainWindow</name>
<message>
- <location filename="../../BasicMainWindow.cpp" line="261"/>
+ <location filename="../../BasicMainWindow.cpp" line="243"/>
<source>git command not specified</source>
<translation>gitコマンドが指定されていません</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="374"/>
+ <location filename="../../BasicMainWindow.cpp" line="358"/>
<source>The URL is a valid repository</source>
<translation>このURLは有効なリポジトリです</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="375"/>
+ <location filename="../../BasicMainWindow.cpp" line="359"/>
<source>Failed to access the URL</source>
<translation>このURLへのアクセスに失敗しました</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="380"/>
+ <location filename="../../BasicMainWindow.cpp" line="364"/>
<source>Remote Repository</source>
<translation>リモートリポジトリ</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="405"/>
+ <location filename="../../BasicMainWindow.cpp" line="389"/>
<source>&amp;Property</source>
<translation>プロパティ(&amp;P)</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1273"/>
+ <location filename="../../BasicMainWindow.cpp" line="1272"/>
<source>Select %1 command</source>
<translation>%1 コマンドの選択</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1452"/>
+ <location filename="../../BasicMainWindow.cpp" line="1447"/>
<source>Revert all files</source>
<translation>すべてのファイルの変更を破棄</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1610"/>
+ <location filename="../../BasicMainWindow.cpp" line="1605"/>
<source>The folder is not a valid git repository.</source>
<translation>フォルダは有効なGitリポジトリではありません。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1614"/>
+ <location filename="../../BasicMainWindow.cpp" line="1609"/>
<source>Do you want to initialize it as a git repository ?</source>
<translation>Gitリポジトリとして初期化しますか?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1615"/>
+ <location filename="../../BasicMainWindow.cpp" line="1610"/>
<source>Initialize Repository</source>
<translation>リポジトリの初期化</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1745"/>
+ <location filename="../../BasicMainWindow.cpp" line="1740"/>
<source>No repository selected</source>
<translation>リポジトリが選択されていません</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<source>Repository Property</source>
- <translation>リポジトリのプロパティ</translation>
+ <translation type="vanished">リポジトリのプロパティ</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Not a valid git repository</source>
<translation>有効なリポジトリではありません</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Open Repository</source>
<translation>リポジトリを開く</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>No such folder</source>
<translation>そのようなフォルダはありません</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>Remove from bookmark ?</source>
<translation>ブックマークから削除しますか?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2248"/>
<source>, %1 ahead</source>
<translation></translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2251"/>
<source>, %1 behind</source>
<translation></translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Confirm Remove</source>
<translation>削除の確認</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation>リポジトリをブックマークから削除してよろしいですか?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>(Files will NOT be deleted)</source>
<translation>(ファルは削除されません)</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2302"/>
<source>A file with same name already exists</source>
<translation>同じ名前のファイルが既に存在しています</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2303"/>
<location filename="../../BasicMainWindow.cpp" line="2308"/>
<location filename="../../BasicMainWindow.cpp" line="2325"/>
<location filename="../../BasicMainWindow.cpp" line="2330"/>
<source>Clone</source>
<translation>クローン</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2307"/>
<source>A folder with same name already exists</source>
<translation>同じ名前のフォルダが既に存在しています</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2324"/>
<source>Invalid folder</source>
<translation>無効なフォルダ</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2329"/>
<source>No such folder. Create it now ?</source>
<translation>このフォルダはありません。作成しますか?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit message can not be omitted.</source>
<translation>コミットメッセージを空にすることはできません。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2415"/>
+ <location filename="../../BasicMainWindow.cpp" line="2419"/>
<source>Failed to commit</source>
<translation>コミット失敗</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2449"/>
- <location filename="../../BasicMainWindow.cpp" line="2533"/>
+ <location filename="../../BasicMainWindow.cpp" line="2453"/>
+ <location filename="../../BasicMainWindow.cpp" line="2538"/>
<source>Connection refused.</source>
<translation>接続が拒否されました。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2502"/>
+ <location filename="../../BasicMainWindow.cpp" line="2506"/>
<source>No remote repository is registered.</source>
<translation>リモートリポジトリが登録されていません。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2524"/>
+ <location filename="../../BasicMainWindow.cpp" line="2529"/>
<source>The current branch %1 has no upstream branch.</source>
<translation>現在のブランチ「%1」には上流ブランチがありません。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2527"/>
+ <location filename="../../BasicMainWindow.cpp" line="2532"/>
<source>You try push --set-upstream</source>
<translation>--set-upstream を試してください</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2616"/>
+ <location filename="../../BasicMainWindow.cpp" line="2621"/>
<source>Failed to delete the branch &apos;%1&apos;</source>
<translation>ブランチ「%1」の削除に失敗しました</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">ブランチの削除に失敗しました : &apos;%1&apos;</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2680"/>
+ <location filename="../../BasicMainWindow.cpp" line="2685"/>
<source>Are you sure you want to run the following command ?</source>
<translation>次のコマンドを実行してよろしいですか?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2701"/>
+ <location filename="../../BasicMainWindow.cpp" line="2706"/>
<source>Reset a file</source>
<translation>ファイルをリセットします</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2715"/>
+ <location filename="../../BasicMainWindow.cpp" line="2720"/>
<source>Unnamed</source>
<translation>無名</translation>
</message>
</context>
<context>
<name>BasicRepositoryDialog</name>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="66"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="77"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="67"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="78"/>
<source>Purpose</source>
<translation>用途</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="68"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="79"/>
<source>URL</source>
<translation></translation>
</message>
</context>
<context>
<name>BigDiffWindow</name>
<message>
<location filename="../../BigDiffWindow.ui" line="14"/>
<source>Diff</source>
<translation>差分</translation>
</message>
</context>
<context>
<name>BlameWindow</name>
<message>
<location filename="../../BlameWindow.ui" line="14"/>
<source>Blame</source>
<translation></translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="45"/>
<source>Information</source>
<translation>情報</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="60"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="70"/>
<source>Date</source>
<translation>日付</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="90"/>
<source>Message</source>
<translation>メッセージ</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="80"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="118"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
</context>
<context>
<name>CheckoutDialog</name>
<message>
<location filename="../../CheckoutDialog.ui" line="14"/>
<source>Checkout</source>
<translation>チェックアウト</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="20"/>
<location filename="../../CheckoutDialog.ui" line="27"/>
<location filename="../../CheckoutDialog.ui" line="34"/>
<source>RadioButton</source>
<translation></translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="63"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="70"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>CherryPickDialog</name>
<message>
<location filename="../../CherryPickDialog.ui" line="14"/>
<source>Cherry-pick</source>
<translation>チェリーピック</translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="20"/>
<source>HEAD</source>
<translation></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="49"/>
<source>Pick</source>
<translation></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="78"/>
<source>Mainline</source>
<translation></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="109"/>
<source>Allow empty</source>
<translation></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="131"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="138"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="19"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="20"/>
<source>Date</source>
<translation>日付</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="21"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="22"/>
<source>Message</source>
<translation>メッセージ</translation>
</message>
</context>
<context>
<name>CloneDialog</name>
<message>
<location filename="../../CloneDialog.ui" line="14"/>
- <location filename="../../CloneDialog.ui" line="103"/>
+ <location filename="../../CloneDialog.ui" line="113"/>
<source>Clone</source>
<translation>クローン</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="22"/>
<source>Remote</source>
<translation>リモート</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="39"/>
<source>&amp;Test</source>
<translation>テスト(&amp;T)</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="46"/>
<source>Local</source>
<translation>ローカル</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="56"/>
<source>Browse</source>
<translation>参照</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="83"/>
+ <location filename="../../CloneDialog.ui" line="93"/>
<source>Open existing local directory...</source>
<translation>既存のフォルダを開く...</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="113"/>
+ <location filename="../../CloneDialog.ui" line="123"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="40"/>
+ <location filename="../../CloneDialog.cpp" line="41"/>
<source>Search</source>
<translation>検索</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="41"/>
+ <location filename="../../CloneDialog.cpp" line="42"/>
<source>GitHub</source>
<translation></translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="113"/>
+ <location filename="../../CloneDialog.cpp" line="115"/>
<source>Checkout into</source>
<translation>ここにチェックアウト</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="125"/>
+ <location filename="../../CloneDialog.cpp" line="127"/>
<source>Open existing directory</source>
<translation>既存のフォンるだを開く</translation>
</message>
</context>
<context>
<name>CloneFromGitHubDialog</name>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="14"/>
<source>Clone from GitHub</source>
<translation>GitHubからクローン</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="45"/>
<source>ssh</source>
<translation></translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="55"/>
<source>http</source>
<translation></translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="95"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="102"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>CommitDialog</name>
<message>
<location filename="../../CommitDialog.ui" line="14"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="27"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="49"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="68"/>
<location filename="../../CommitDialog.ui" line="94"/>
<location filename="../../CommitDialog.ui" line="139"/>
<location filename="../../CommitDialog.ui" line="159"/>
<location filename="../../CommitDialog.ui" line="179"/>
<source>---</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="75"/>
<location filename="../../CommitDialog.ui" line="166"/>
<source>Mail</source>
<translation>メール</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="111"/>
<source>GPG Signing</source>
<translation>GPG署名</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="126"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="146"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="189"/>
<source>Configure...</source>
<translation>設定...</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="198"/>
+ <location filename="../../CommitDialog.ui" line="203"/>
<source>Message</source>
<translation>メッセージ</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="223"/>
+ <location filename="../../CommitDialog.ui" line="210"/>
+ <source>Amend</source>
+ <translation>修正する</translation>
+ </message>
+ <message>
+ <location filename="../../CommitDialog.ui" line="237"/>
<source>OK</source>
<translation></translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="233"/>
+ <location filename="../../CommitDialog.ui" line="247"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>CommitExploreWindow</name>
<message>
<location filename="../../CommitExploreWindow.ui" line="14"/>
<source>Commit Explorer</source>
<translation>コミットエクスプローラー</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="65"/>
<source>Commit ID</source>
<translation>コミットID</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="82"/>
<source>Date</source>
<translation>日付</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="89"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.cpp" line="78"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
</context>
<context>
<name>CommitPropertyDialog</name>
<message>
<location filename="../../CommitPropertyDialog.ui" line="14"/>
<source>Commit Property</source>
<oldsource>Commit Properties</oldsource>
<translation>コミットのプロパティ</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="46"/>
<source>Date</source>
<translation>日付</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="56"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="66"/>
<location filename="../../CommitPropertyDialog.ui" line="196"/>
<source>Mail</source>
<translation>メール</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="154"/>
<source>GPG Sign</source>
<translation>GPG署名</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="176"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="186"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="233"/>
<source>Commit ID</source>
<translation>コミットID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="243"/>
<source>Parent IDs</source>
<translation>親ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="265"/>
<source>Files...</source>
<translation>ファイル...</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="285"/>
<source>Explorer</source>
<translation>エクスプローラ</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="305"/>
<source>Checkout</source>
<translation>チェックアウト</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="312"/>
<source>Jump</source>
<translation>移動</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="332"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.cpp" line="60"/>
<source>&lt;Unknown&gt;</source>
<translation>&lt;不明&gt;</translation>
</message>
</context>
<context>
<name>CommitViewWindow</name>
<message>
<location filename="../../CommitViewWindow.ui" line="14"/>
<source>Commit View</source>
<translation>コミットビュー</translation>
</message>
<message>
<location filename="../../CommitViewWindow.cpp" line="58"/>
<source>History</source>
<translation>履歴</translation>
</message>
</context>
<context>
<name>ConfigCredentialHelperDialog</name>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="26"/>
<source>wincred</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="39"/>
<source>winstore</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="52"/>
<source>None</source>
<translation>なし</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="65"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="78"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="91"/>
<source>Other</source>
<translation>その他</translation>
</message>
</context>
<context>
<name>ConfigSigningDialog</name>
<message>
<location filename="../../ConfigSigningDialog.ui" line="14"/>
<source>Signing Policy</source>
<translation>署名ポリシー</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="20"/>
<source>Config commit.gpgsign</source>
<translation>commit.gpgsign の設定</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="32"/>
<source>global</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="42"/>
<source>local</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="70"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="77"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>CreateRepositoryDialog</name>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="14"/>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="46"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Create Repository</source>
<translation>リポジトリの作成</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="22"/>
<source>Path</source>
<translation>パス</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="32"/>
<source>Browse</source>
<translation>参照</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="54"/>
<source>Bookmark</source>
<translation>ブックマーク</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="63"/>
<location filename="../../CreateRepositoryDialog.ui" line="88"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="76"/>
<source>Remote</source>
<translation>リモート</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="98"/>
<source>URL</source>
<translation></translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="108"/>
<source>Test</source>
<translation>テスト</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="146"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="153"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="19"/>
<source>A valid git repository already exists there.</source>
<translation>有効なリポジトリが既に存在しています。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<source>The specified path is not a directory.</source>
<translation>指定されたパスはフォルダではありません。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Remote name is invalid.</source>
<translation>リモート名が無効です。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="62"/>
<source>Destination Path</source>
<translation>作成先のパス</translation>
</message>
</context>
<context>
<name>DeleteBranchDialog</name>
<message>
<location filename="../../DeleteBranchDialog.ui" line="14"/>
<source>Delete Branch</source>
<translation>ブランチの削除</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="25"/>
<source>&amp;All branches</source>
<translation>全てのブランチ(&amp;A)</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="45"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="52"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.cpp" line="23"/>
<source>Delete Remote Branch</source>
<translation>リモートブランチの削除</translation>
</message>
</context>
<context>
<name>DeleteTagsDialog</name>
<message>
<location filename="../../DeleteTagsDialog.ui" line="14"/>
<source>Delete tags</source>
<translation>タグを削除</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="32"/>
<source>Check all</source>
<translation>全てチェック</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="52"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="62"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>DoYouWantToInitDialog</name>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="14"/>
<source>Init Repository</source>
<translation>リポジトリの初期化</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="20"/>
<source>The folder:</source>
<translation>フォルダ:</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="32"/>
<source>is not a valid git working copy.</source>
<translation>は、有効なGitリポジトリではありません。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="39"/>
<source>Do you want to init it as a git repository ?</source>
<translation>これをGitリポジトリとして初期化しますか?</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="81"/>
<source>Yes, Please init it.</source>
<translation>はい、初期化します。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="88"/>
<source>No, Stop it.</source>
<translation>いいえ、初期化しません。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="140"/>
<source>Please choose option</source>
<translation>選択してください</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="20"/>
<source>Next...</source>
<translation>次へ...</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="26"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>EditGitIgnoreDialog</name>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="14"/>
<source>Edit Git Ignore</source>
<translation>Gitで無視するファイルの編集</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="20"/>
<location filename="../../EditGitIgnoreDialog.ui" line="27"/>
<location filename="../../EditGitIgnoreDialog.ui" line="34"/>
<location filename="../../EditGitIgnoreDialog.ui" line="41"/>
<source>RadioButton</source>
<translation></translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="63"/>
<source>Edit the file</source>
<translation>ファイルを編集する</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="83"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="90"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>EditRemoteDialog</name>
<message>
<location filename="../../EditRemoteDialog.ui" line="14"/>
<source>Edit Remote</source>
<translation>リモートの編集</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="20"/>
<source>Remote</source>
<translation>リモート</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="26"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="33"/>
<source>URL</source>
<translation></translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="53"/>
<source>&amp;Test</source>
<translation>テスト(&amp;T)</translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="81"/>
+ <location filename="../../EditRemoteDialog.ui" line="104"/>
<source>OK</source>
<translation></translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="88"/>
+ <location filename="../../EditRemoteDialog.ui" line="111"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
</context>
<context>
<name>EditTagsDialog</name>
<message>
<location filename="../../EditTagsDialog.ui" line="14"/>
<source>Edit Tags</source>
<translation>タグの編集</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="41"/>
<source>Add...</source>
<translation>追加...</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="48"/>
<source>Delete</source>
<translation>削除</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="68"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
</context>
<context>
<name>ExperimentDialog</name>
<message>
<location filename="../../ExperimentDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
</context>
<context>
<name>FileDiffWidget</name>
<message>
<location filename="../../FileDiffWidget.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
</context>
<context>
<name>FileHistoryWindow</name>
<message>
<location filename="../../FileHistoryWindow.ui" line="14"/>
<source>File History</source>
<translation>ファイルの履歴</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.ui" line="20"/>
<location filename="../../FileHistoryWindow.ui" line="27"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="111"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="112"/>
<source>Date</source>
<translation>日付</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="113"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="114"/>
<source>Message</source>
<translation>メッセージ</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">概要</translation>
</message>
</context>
<context>
<name>FilePropertyDialog</name>
<message>
<location filename="../../FilePropertyDialog.ui" line="14"/>
<source>File Property</source>
<oldsource>File Properties</oldsource>
<translation>ファイルのプロパティ</translation>
</message>
<message>
<location filename="../../FilePropertyDialog.ui" line="78"/>
<source>&amp;Close</source>
<translation>閉じる(&amp;C)</translation>
</message>
</context>
+<context>
+ <name>FileViewWidget</name>
+ <message>
+ <location filename="../../FileViewWidget.cpp" line="30"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>FindCommitDialog</name>
<message>
<location filename="../../FindCommitDialog.ui" line="14"/>
<source>Find Commit</source>
<translation>コミットの検索</translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="54"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="61"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>InputNewTagDialog</name>
<message>
<location filename="../../InputNewTagDialog.ui" line="14"/>
<source>Edit tag</source>
<translation>タグの編集</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="31"/>
<source>Tag</source>
<translation>タグ</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="58"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="65"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>JumpDialog</name>
<message>
<location filename="../../JumpDialog.ui" line="14"/>
<source>Jump</source>
<translation>移動</translation>
</message>
<message>
<source>Branches and Tags</source>
<translation type="vanished">ブランチとタグ</translation>
</message>
<message>
<source>&amp;Filter</source>
<translation type="vanished">フィルタ(&amp;F)</translation>
</message>
<message>
<source>Find</source>
<translation type="vanished">検索</translation>
</message>
<message>
<source>&amp;Checkout</source>
<translation type="vanished">チェックアウト(&amp;C)</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="20"/>
<source>Branch, Tag or Commit-ID :</source>
<translation>ブランチ、タグ、コミットID</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="71"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="81"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../JumpDialog.cpp" line="39"/>
<source>Name</source>
<translation>名前</translation>
</message>
</context>
<context>
<name>Languages</name>
<message>
<location filename="../../Languages.cpp" line="6"/>
<source>English</source>
<translation></translation>
</message>
<message>
<location filename="../../Languages.cpp" line="7"/>
<source>Japanese</source>
<translation>日本語</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="8"/>
<source>Russian</source>
<translation>ロシア語</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="9"/>
<source>Chinese (Simplified)</source>
<translation>中国語(簡体字)</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="10"/>
<source>Chinese (Traditional/Taiwan)</source>
<translation>中国語(繁体字/台湾)</translation>
</message>
</context>
<context>
<name>LineEditDialog</name>
<message>
<location filename="../../LineEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="45"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="52"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../MainWindow.ui" line="14"/>
<source>Guitar</source>
<translation></translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="96"/>
- <location filename="../../MainWindow.ui" line="1421"/>
- <location filename="../../MainWindow.ui" line="1424"/>
+ <location filename="../../MainWindow.ui" line="1416"/>
+ <location filename="../../MainWindow.ui" line="1419"/>
<source>Clone</source>
<translation>クローン</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="131"/>
- <location filename="../../MainWindow.cpp" line="1140"/>
- <location filename="../../MainWindow.cpp" line="1141"/>
+ <location filename="../../MainWindow.cpp" line="1135"/>
+ <location filename="../../MainWindow.cpp" line="1136"/>
<source>Fetch</source>
<translation>フェッチ</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="166"/>
<source>Pull</source>
<translation>プル</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="201"/>
<source>Push</source>
<translation>プッシュ</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="303"/>
- <location filename="../../MainWindow.ui" line="1548"/>
+ <location filename="../../MainWindow.ui" line="1543"/>
<source>Terminal</source>
<translation>端末</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="338"/>
- <location filename="../../MainWindow.ui" line="1557"/>
+ <location filename="../../MainWindow.ui" line="1552"/>
<source>Explorer</source>
<translation>エクスプローラ</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="424"/>
<source>Repository</source>
<translation>リポジトリ</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="431"/>
<source>Branch Name</source>
<translation>ブランチ名</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="483"/>
- <location filename="../../MainWindow.ui" line="1592"/>
+ <location filename="../../MainWindow.ui" line="1587"/>
<source>Offline</source>
<translation>オフライン</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="473"/>
- <location filename="../../MainWindow.ui" line="1587"/>
+ <location filename="../../MainWindow.ui" line="1582"/>
<source>Online</source>
<translation>オンライン</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="799"/>
- <location filename="../../MainWindow.cpp" line="1853"/>
+ <location filename="../../MainWindow.cpp" line="1848"/>
<source>Unstage</source>
<translation>除外</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="828"/>
<source>Select all</source>
<translation>全て選択</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="863"/>
- <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1718"/>
<source>Stage</source>
<translation>追加</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="892"/>
- <location filename="../../MainWindow.cpp" line="879"/>
+ <location filename="../../MainWindow.cpp" line="874"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1023"/>
<source>&amp;File</source>
<translation>ファイル(&amp;F)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1034"/>
<source>&amp;View</source>
<translation>表示(&amp;V)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1040"/>
+ <location filename="../../MainWindow.ui" line="1041"/>
<source>&amp;Edit</source>
<translation>編集(&amp;E)</translation>
</message>
<message>
<source>Destructive</source>
<translation type="vanished">注意を要するコマンド</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1412"/>
+ <location filename="../../MainWindow.ui" line="1407"/>
<source>Settings</source>
<translation>設定</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1434"/>
- <location filename="../../MainWindow.cpp" line="1595"/>
+ <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.cpp" line="1590"/>
<source>Edit tags...</source>
<translation>タグの編集...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1437"/>
+ <location filename="../../MainWindow.ui" line="1432"/>
<source>Edit tags</source>
<translation>タグの編集</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1562"/>
+ <location filename="../../MainWindow.ui" line="1557"/>
<source>Clean -df</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1567"/>
+ <location filename="../../MainWindow.ui" line="1562"/>
<source>Reset --hard</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1494"/>
+ <location filename="../../MainWindow.ui" line="1489"/>
<source>Create a repository</source>
<translation>リポジトリの作成</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1476"/>
<source>Push upstream</source>
<translation>プッシュ upstream</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1503"/>
+ <location filename="../../MainWindow.ui" line="1498"/>
<source>Stop process</source>
<translation>処理の停止</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1508"/>
+ <location filename="../../MainWindow.ui" line="1503"/>
<source>E&amp;xit</source>
<translation>終了(&amp;X)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1511"/>
+ <location filename="../../MainWindow.ui" line="1506"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1516"/>
+ <location filename="../../MainWindow.ui" line="1511"/>
<source>Reflog...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1516"/>
<source>Property...</source>
<translation>プロパティ...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1526"/>
- <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1524"/>
<source>Set GPG signing</source>
<translation>GPG署名の指定</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1539"/>
+ <location filename="../../MainWindow.ui" line="1534"/>
<source>Fetch --prune</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1055"/>
+ <location filename="../../MainWindow.ui" line="1056"/>
<source>&amp;Help</source>
<translation>ヘルプ(&amp;H)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="252"/>
- <location filename="../../MainWindow.ui" line="1628"/>
- <location filename="../../MainWindow.cpp" line="1353"/>
+ <location filename="../../MainWindow.ui" line="1623"/>
+ <location filename="../../MainWindow.cpp" line="1348"/>
<source>Status</source>
<translation>ステータス</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="656"/>
<source>...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1061"/>
+ <location filename="../../MainWindow.ui" line="1062"/>
<source>&amp;Window</source>
<translation>ウィンドウ(&amp;W)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1067"/>
+ <location filename="../../MainWindow.ui" line="1073"/>
<source>&amp;Repository</source>
<translation>リポジトリ(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1071"/>
- <location filename="../../MainWindow.ui" line="1572"/>
+ <location filename="../../MainWindow.ui" line="1077"/>
+ <location filename="../../MainWindow.ui" line="1567"/>
<source>Stash</source>
<translation>素タッシュ</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1098"/>
+ <location filename="../../MainWindow.ui" line="1104"/>
<source>Re&amp;mote</source>
<translation>リモート(&amp;M)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1113"/>
+ <location filename="../../MainWindow.ui" line="1119"/>
<source>&amp;Destructive</source>
<translation>要注意(&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1125"/>
- <source>Experimental</source>
- <translation></translation>
- </message>
- <message>
- <location filename="../../MainWindow.ui" line="1155"/>
+ <location filename="../../MainWindow.ui" line="1150"/>
<source>Log</source>
<translation>ログ</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1325"/>
+ <location filename="../../MainWindow.ui" line="1320"/>
<source>&amp;Open existing working copy...</source>
<translation>既存の作業コピーを開く(&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1328"/>
- <location filename="../../MainWindow.cpp" line="2027"/>
+ <location filename="../../MainWindow.ui" line="1323"/>
+ <location filename="../../MainWindow.cpp" line="2022"/>
<source>Add existing working copy</source>
<translation>既存の作業コピーを追加</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1333"/>
- <location filename="../../MainWindow.ui" line="1336"/>
+ <location filename="../../MainWindow.ui" line="1328"/>
+ <location filename="../../MainWindow.ui" line="1331"/>
<source>Refresh</source>
<translation>更新</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1339"/>
+ <location filename="../../MainWindow.ui" line="1334"/>
<source>F5</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1348"/>
+ <location filename="../../MainWindow.ui" line="1343"/>
<source>&amp;Commit</source>
<translation>コミット(&amp;C)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1357"/>
+ <location filename="../../MainWindow.ui" line="1352"/>
<source>&amp;Push</source>
<translation>プッシュ(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1365"/>
+ <location filename="../../MainWindow.ui" line="1360"/>
<source>test</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1368"/>
+ <location filename="../../MainWindow.ui" line="1363"/>
<source>Ctrl+T</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1377"/>
+ <location filename="../../MainWindow.ui" line="1372"/>
<source>Pu&amp;ll</source>
<translation>プル(&amp;L)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1381"/>
<source>&amp;Fetch</source>
<translation>フェッチ(&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1391"/>
- <location filename="../../MainWindow.ui" line="1394"/>
+ <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1389"/>
<source>Edit global .gitconfig</source>
<translation>グローバル .gitignore を編集</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1399"/>
+ <location filename="../../MainWindow.ui" line="1394"/>
<source>Edit .git/config</source>
<translation>.git/config を編集</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1404"/>
+ <location filename="../../MainWindow.ui" line="1399"/>
<source>Edit .gitignore</source>
<translation>.gitignore を編集</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1409"/>
+ <location filename="../../MainWindow.ui" line="1404"/>
<source>&amp;Settings...</source>
<translation>設定(&amp;S)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1458"/>
+ <location filename="../../MainWindow.ui" line="1453"/>
<source>F4</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1463"/>
+ <location filename="../../MainWindow.ui" line="1458"/>
<source>&amp;Jump...</source>
<translation>移動(&amp;J)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1466"/>
+ <location filename="../../MainWindow.ui" line="1461"/>
<source>Ctrl+J</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.ui" line="1466"/>
<source>Check&amp;out...</source>
<translation>チェックアウト(&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1476"/>
- <location filename="../../MainWindow.cpp" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.cpp" line="1595"/>
<source>Delete branch...</source>
<translation>ブランチの削除...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1577"/>
+ <location filename="../../MainWindow.ui" line="1572"/>
<source>Apply</source>
<translation>適用</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1582"/>
+ <location filename="../../MainWindow.ui" line="1577"/>
<source>Drop</source>
<translation>破棄</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1595"/>
<source>Repositories panel</source>
<translation>リポジトリパネル</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1603"/>
+ <location filename="../../MainWindow.ui" line="1598"/>
<source>Ctrl+R</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1608"/>
+ <location filename="../../MainWindow.ui" line="1603"/>
<source>&amp;Find...</source>
<translation>検索(&amp;F)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1611"/>
+ <location filename="../../MainWindow.ui" line="1606"/>
<source>Ctrl+F</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1616"/>
+ <location filename="../../MainWindow.ui" line="1611"/>
<source>Find next</source>
<translation>次を検索</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1619"/>
+ <location filename="../../MainWindow.ui" line="1614"/>
<source>F3</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1633"/>
+ <location filename="../../MainWindow.ui" line="1628"/>
<source>Jump to &amp;HEAD</source>
<translation>HEADへ移動(&amp;H)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1636"/>
+ <location filename="../../MainWindow.ui" line="1631"/>
<source>Ctrl+H</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1641"/>
+ <location filename="../../MainWindow.ui" line="1636"/>
<source>Merge...</source>
<translation>マージ...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1646"/>
+ <location filename="../../MainWindow.ui" line="1641"/>
<source>Expand commit log</source>
<translation>コミットログを展開</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1649"/>
+ <location filename="../../MainWindow.ui" line="1644"/>
<source>Ctrl+2</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1654"/>
+ <location filename="../../MainWindow.ui" line="1649"/>
<source>Expand file list</source>
<translation>ファイルリストを展開</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1657"/>
+ <location filename="../../MainWindow.ui" line="1652"/>
<source>Ctrl+3</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1662"/>
+ <location filename="../../MainWindow.ui" line="1657"/>
<source>Expand diff view</source>
<translation>差分ビューを展開</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1665"/>
+ <location filename="../../MainWindow.ui" line="1660"/>
<source>Ctrl+4</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1670"/>
+ <location filename="../../MainWindow.ui" line="1668"/>
<source>Sidebar</source>
<translation>サイドバー</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1673"/>
- <source>F1</source>
- <translation></translation>
+ <location filename="../../MainWindow.ui" line="1671"/>
+ <source>Ctrl+1</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1687"/>
+ <source>Show labels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1690"/>
+ <source>Ctrl+L</source>
+ <translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1678"/>
+ <location filename="../../MainWindow.ui" line="1676"/>
<source>Wide</source>
<translation>広げる</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1681"/>
+ <location filename="../../MainWindow.ui" line="1679"/>
<source>F2</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1486"/>
- <location filename="../../MainWindow.ui" line="1489"/>
+ <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1484"/>
<source>Reset HEAD~1</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1534"/>
- <location filename="../../MainWindow.cpp" line="1601"/>
+ <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.cpp" line="1596"/>
<source>Delete remote branch...</source>
<translation>リモートブランチの削除...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.ui" line="1424"/>
<source>&amp;About</source>
<translation>Guitarについて(&amp;A)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1442"/>
+ <location filename="../../MainWindow.ui" line="1437"/>
<source>Push all tags</source>
<translation>全てのタグをプッシュ</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1447"/>
+ <location filename="../../MainWindow.ui" line="1442"/>
<source>Set config user</source>
<translation>ユーザー情報を設定</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1455"/>
+ <location filename="../../MainWindow.ui" line="1450"/>
<source>&amp;Log</source>
<translation>ログ(&amp;L)</translation>
</message>
<message>
<source>Unnamed</source>
<translation type="vanished">無名</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="679"/>
+ <location filename="../../MainWindow.cpp" line="674"/>
<source>Default</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="878"/>
+ <location filename="../../MainWindow.cpp" line="873"/>
<source>Graph</source>
<translation>樹形図</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="880"/>
+ <location filename="../../MainWindow.cpp" line="875"/>
<source>Date</source>
<translation>日付</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="881"/>
+ <location filename="../../MainWindow.cpp" line="876"/>
<source>Author</source>
<translation>名前</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">概要</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1029"/>
- <location filename="../../MainWindow.cpp" line="1199"/>
+ <location filename="../../MainWindow.cpp" line="1024"/>
+ <location filename="../../MainWindow.cpp" line="1194"/>
<source>Uncommited changes</source>
<translation>コミットされていない変更があります</translation>
</message>
<message>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation type="vanished">リポジトリをブックマークから削除してよろしいですか?</translation>
</message>
<message>
<source>(Files will NOT be deleted)</source>
<translation type="vanished">(ファルは削除されません)</translation>
</message>
<message>
<source>Open Repository</source>
<translation type="vanished">リポジトリを開く</translation>
</message>
<message>
<source>No such folder</source>
<translation type="vanished">そのようなフォルダはありません</translation>
</message>
<message>
<source>Not a valid git repository</source>
<translation type="vanished">有効なリポジトリではありません</translation>
</message>
<message>
<source>Commit message can not be omitted.</source>
<translation type="vanished">コミットメッセージを空にすることはできません。</translation>
</message>
<message>
<source>Repository Property</source>
<translation type="vanished">リポジトリのプロパティ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1457"/>
+ <location filename="../../MainWindow.cpp" line="1452"/>
<source>&amp;Add new group</source>
<translation>新しいグループを追加(&amp;A)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1458"/>
+ <location filename="../../MainWindow.cpp" line="1453"/>
<source>&amp;Delete group</source>
<translation>グループを削除(&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1459"/>
+ <location filename="../../MainWindow.cpp" line="1454"/>
<source>&amp;Rename group</source>
<translation>グループ名の変更(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1464"/>
+ <location filename="../../MainWindow.cpp" line="1459"/>
<source>New group</source>
<translation>新しいグループ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1488"/>
+ <location filename="../../MainWindow.cpp" line="1483"/>
<source>Open &amp;terminal</source>
<translation>端末を開く(&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1489"/>
+ <location filename="../../MainWindow.cpp" line="1484"/>
<source>Open command promp&amp;t</source>
<translation>コマンドプロンプトを開く(&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1491"/>
+ <location filename="../../MainWindow.cpp" line="1486"/>
<source>&amp;Open</source>
<translation>開く(&amp;O)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1502"/>
+ <location filename="../../MainWindow.cpp" line="1497"/>
<source>Open &amp;folder</source>
<translation>フォルダを開く(&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1507"/>
+ <location filename="../../MainWindow.cpp" line="1502"/>
<source>&amp;Remove</source>
<translation>削除(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1550"/>
+ <location filename="../../MainWindow.cpp" line="1545"/>
<source>Copy commit id (7 letters)</source>
<translation>コミットIDをコピー(7文字)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1551"/>
+ <location filename="../../MainWindow.cpp" line="1546"/>
<source>Copy commit id (completely)</source>
<translation>コミットIDをコピー(すべて)</translation>
</message>
<message>
<source>Edit comment...</source>
<translation type="vanished">コメントを編集...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1242"/>
- <location filename="../../MainWindow.cpp" line="1593"/>
+ <location filename="../../MainWindow.cpp" line="1237"/>
+ <location filename="../../MainWindow.cpp" line="1588"/>
<source>Rebase</source>
<translation>リベース</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1605"/>
+ <location filename="../../MainWindow.cpp" line="1600"/>
<source>Explore</source>
<translation>探索</translation>
</message>
<message>
<source>Reset HEAD</source>
<translation type="vanished">HEADをリセット</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="882"/>
+ <location filename="../../MainWindow.cpp" line="877"/>
<source>Message</source>
<translation>メッセージ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1679"/>
- <location filename="../../MainWindow.cpp" line="1728"/>
- <location filename="../../MainWindow.cpp" line="1854"/>
+ <location filename="../../MainWindow.cpp" line="1674"/>
+ <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1849"/>
<source>History</source>
<translation>履歴</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>No such commit</source>
<translation>そのようなコミットはありません</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1143"/>
- <location filename="../../MainWindow.cpp" line="1144"/>
+ <location filename="../../MainWindow.cpp" line="1138"/>
+ <location filename="../../MainWindow.cpp" line="1139"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2762"/>
+ <location filename="../../MainWindow.cpp" line="2757"/>
<source>Authentication Failed</source>
<translation>認証が失敗しました</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1596"/>
+ <location filename="../../MainWindow.cpp" line="1591"/>
<source>Revert</source>
<translation>変更を破棄する</translation>
</message>
<message>
<source>Failed to commit</source>
<translation type="vanished">コミット失敗</translation>
</message>
<message>
<source>No remote repository is registered.</source>
<translation type="vanished">リモートリポジトリが登録されていません。</translation>
</message>
<message>
<source>The current branch %1 has no upstream branch.</source>
<translation type="vanished">現在のブランチ「%1」には上流ブランチがありません。</translation>
</message>
<message>
<source>You try push --set-upstream</source>
<translation type="vanished">--set-upstream を試してください</translation>
</message>
<message>
<source>Connection refused.</source>
<translation type="vanished">接続が拒否されました。</translation>
</message>
<message>
<source>&amp;Property</source>
<translation type="vanished">プロパティ(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1567"/>
+ <location filename="../../MainWindow.cpp" line="1562"/>
<source>Checkout/Branch...</source>
<translation>チェックアウト/ブランチ...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1589"/>
+ <location filename="../../MainWindow.cpp" line="1584"/>
<source>Edit message...</source>
<translation>メッセージの編集...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1592"/>
+ <location filename="../../MainWindow.cpp" line="1587"/>
<source>Merge</source>
<translation>マージ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1594"/>
+ <location filename="../../MainWindow.cpp" line="1589"/>
<source>Cherry-pick</source>
<translation>チェリーピック</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1678"/>
- <location filename="../../MainWindow.cpp" line="1727"/>
+ <location filename="../../MainWindow.cpp" line="1673"/>
+ <location filename="../../MainWindow.cpp" line="1722"/>
<source>Untrack</source>
<translation>追跡しない</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1680"/>
- <location filename="../../MainWindow.cpp" line="1729"/>
- <location filename="../../MainWindow.cpp" line="1855"/>
+ <location filename="../../MainWindow.cpp" line="1675"/>
+ <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1850"/>
<source>Blame</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1688"/>
+ <location filename="../../MainWindow.cpp" line="1683"/>
<source>Delete selected files.</source>
<translation>選択されたファイルを削除します。</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1699"/>
+ <location filename="../../MainWindow.cpp" line="1694"/>
<source>rm --cached files</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1719"/>
<source>Reset</source>
<translation>リセット</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1725"/>
+ <location filename="../../MainWindow.cpp" line="1720"/>
<source>Ignore</source>
<translation>無視する</translation>
</message>
<message>
<source>Reset a file</source>
<translation type="vanished">ファイルをリセットします</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1239"/>
+ <location filename="../../MainWindow.cpp" line="1234"/>
<source>Are you sure you want to rebase the commit ?</source>
<translation>コミットをリベースしてよろしいですか?</translation>
</message>
<message>
<source>No repository selected</source>
<translation type="vanished">リポジトリが選択されていません</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1677"/>
- <location filename="../../MainWindow.cpp" line="1726"/>
+ <location filename="../../MainWindow.cpp" line="1672"/>
+ <location filename="../../MainWindow.cpp" line="1721"/>
<source>Delete</source>
<translation>削除</translation>
</message>
<message>
<source>Are you sure you want to run the following command ?</source>
<translation type="vanished">次のコマンドを実行してよろしいですか?</translation>
</message>
<message>
<source>Revert all files</source>
<translation type="vanished">すべてのファイルの変更を破棄</translation>
</message>
<message>
<source>Select %1 command</source>
<translation type="vanished">%1 コマンドの選択</translation>
</message>
<message>
<source>A file with same name already exists</source>
<translation type="vanished">同じ名前のファイルが既に存在しています</translation>
</message>
<message>
<source>A folder with same name already exists</source>
<translation type="vanished">同じ名前のフォルダが既に存在しています</translation>
</message>
<message>
<source>Invalid folder</source>
<translation type="vanished">無効なフォルダ</translation>
</message>
<message>
<source>No such folder. Create it now ?</source>
<translation type="vanished">このフォルダはありません。作成しますか?</translation>
</message>
<message>
<source>The URL is a valid repository</source>
<translation type="vanished">このURLは有効なリポジトリです</translation>
</message>
<message>
<source>Failed to access the URL</source>
<translation type="vanished">このURLへのアクセスに失敗しました</translation>
</message>
<message>
<source>Remote Repository</source>
<translation type="vanished">リモートリポジトリ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>Jump</source>
<translation>移動</translation>
</message>
<message>
<source>That commmit has not foud or not read yet</source>
<translation type="vanished">そのコミットは、見つからないか、まだ読み込まれていません</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">ブランチの削除に失敗しました : &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>MergeBranchDialog</name>
<message>
<source>Merge</source>
<translation type="vanished">マージ</translation>
</message>
<message>
<source>Current branch :</source>
<translation type="vanished">現在のブランチ :</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">キャンセル</translation>
</message>
</context>
<context>
<name>MergeDialog</name>
<message>
<location filename="../../MergeDialog.ui" line="14"/>
<source>Merge</source>
<translation>マージ</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="20"/>
<source>Fast Forwarding</source>
<translation>ファストフォワーディング</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="26"/>
<source>Default (--ff)</source>
<translation>規定 (--ff)</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="33"/>
<source>No fast forward (--no-ff)</source>
<translation>ファストフォワードしない (--no-ff)</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="40"/>
<source>Fast forward only (--ff-only)</source>
<translation>ファストフォワードのみ (--ff-only)</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="50"/>
<source>From</source>
<translation>元</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="77"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="84"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>MyImageViewWidget</name>
<message>
<location filename="../../MyImageViewWidget.cpp" line="34"/>
<source>Save as...</source>
<translation>名前を付けて保存...</translation>
</message>
<message>
<location filename="../../MyImageViewWidget.cpp" line="42"/>
<source>Save as</source>
<translation>名前を付けて保存</translation>
</message>
</context>
<context>
<name>MyTextEditorWidget</name>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="35"/>
<source>Save as...</source>
<translation>名前を付けて保存...</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="36"/>
<source>Copy</source>
<translation>コピー</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="43"/>
<source>Save as</source>
<translation>名前を付けて保存</translation>
</message>
</context>
<context>
<name>ObjectBrowserDialog</name>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="14"/>
<source>Object Browser</source>
<translation>オブジェクトブラウザ</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="38"/>
<source>Inspect</source>
<translation>調査</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="58"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="65"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="23"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="24"/>
<source>Type</source>
<translation>種類</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="119"/>
<source>Object Inspection</source>
<translation>オブジェクトの調査</translation>
</message>
</context>
<context>
<name>PushDialog</name>
<message>
<location filename="../../PushDialog.ui" line="14"/>
<source>Push</source>
<translation>プッシュ</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="20"/>
<source>push --set-upstream</source>
<translation></translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="26"/>
<source>Remote</source>
<translation>リモート</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="33"/>
<source>Branch</source>
<translation>ブランチ</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="64"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="71"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>RebaseOntoDialog</name>
<message>
<source>Branch</source>
<translation type="vanished">ブランチ</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">キャンセル</translation>
</message>
</context>
<context>
<name>ReflogWindow</name>
<message>
<location filename="../../ReflogWindow.ui" line="14"/>
<source>Reflog</source>
<translation></translation>
</message>
<message>
<location filename="../../ReflogWindow.ui" line="57"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="35"/>
<source>Commit</source>
<translation>コミット</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="36"/>
<source>Head</source>
<translation>ヘッド</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="37"/>
<source>Command</source>
<translation>コマンド</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="38"/>
<source>Message</source>
<translation>メッセージ</translation>
</message>
<message>
<source>Comment</source>
<translation type="vanished">コメント</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="98"/>
<source>Checkout</source>
<translation>チェックアウト</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="99"/>
<source>Explorer</source>
<translation>エクスプローラ</translation>
</message>
</context>
+<context>
+ <name>RemoteAdvancedOptionWidget</name>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="32"/>
+ <source>Advanced Option</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="38"/>
+ <source>SSH key override...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="45"/>
+ <source>Clear</source>
+ <translation type="unfinished">消去</translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="24"/>
+ <source>SSH command is not registered.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="30"/>
+ <source>SSH key override</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>RemoteRepositoriesTableWidget</name>
<message>
<location filename="../../RemoteRepositoriesTableWidget.cpp" line="27"/>
<source>Copy URL</source>
<translation>URLをコピー</translation>
</message>
</context>
<context>
<name>RepositoryPropertyDialog</name>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="14"/>
<source>Repository Property</source>
<oldsource>Repository Properties</oldsource>
<translation>リポジトリのプロパティ</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="65"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="95"/>
<source>Local dir :</source>
<translation>ローカルフォルダ :</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="114"/>
<source>Remote URLs</source>
<translation>リモートURL</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="124"/>
<source>Remote</source>
<translation>リモート</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="130"/>
<source>Add</source>
<translation>追加</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="137"/>
<source>Edit</source>
<translation>編集</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="157"/>
<source>Remove</source>
<translation>削除</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="169"/>
<source>&amp;Remote menu</source>
<translation>リモートメニュー(&amp;R)</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="189"/>
<source>Close</source>
<translation>閉じる</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Confirm Remove</source>
<translation>削除の確認</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Are you sure you want to remove the remote &apos;%1&apos; from the repository &apos;%2&apos; ?</source>
<translation>リポジトリ「%2」からリモート「%1」を削除してよろしいですか?</translation>
</message>
</context>
<context>
<name>SearchFromGitHubDialog</name>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="14"/>
<source>Search From GitHub</source>
<translation>GitHubから検索</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="25"/>
<source>Search</source>
<translation>検索</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="78"/>
<source>ssh</source>
<translation></translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="88"/>
<source>http</source>
<translation></translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="115"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="122"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="56"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="57"/>
<source>Owner</source>
<translation>オーナー</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="58"/>
<source>Score</source>
<translation>スコア</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="59"/>
<source>Description</source>
<translation>概要</translation>
</message>
</context>
<context>
<name>SelectCommandDialog</name>
<message>
<location filename="../../SelectCommandDialog.ui" line="14"/>
<source>Select git command</source>
<translation>git コマンドの選択</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="32"/>
<source>&amp;Browse...</source>
<translation>参照(&amp;B)...</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="52"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="59"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="29"/>
<source>Please select the &apos;%1&apos; command you want to use.</source>
<translation>使用したい &apos;%1&apos; コマンドを選択してください。</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="58"/>
<location filename="../../SelectCommandDialog.cpp" line="65"/>
<source>%1 command (%2);;</source>
<translation>%1 コマンド (%2);;</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="60"/>
<source>Executable files (*.exe)</source>
<translation>実行可能ファイル (*.exe)</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="71"/>
<source>%1 command</source>
<translation>%1 コマンド</translation>
</message>
</context>
<context>
<name>SelectGpgKeyDialog</name>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="14"/>
<source>Select GPG Key</source>
<translation>GPGキーの選択</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="57"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="64"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="31"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="32"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="33"/>
<source>Mail</source>
<translation>メール</translation>
</message>
</context>
<context>
<name>SelectItemDialog</name>
<message>
<location filename="../../SelectItemDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="25"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="32"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>SetGlobalUserDialog</name>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="14"/>
<source>Global User Setting</source>
<translation>グローバルユーザー設定</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="31"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="41"/>
<source>Mail</source>
<translation>メール</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="68"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="78"/>
<source>Skip</source>
<translation>スキップ</translation>
</message>
</context>
<context>
<name>SetGpgSigningDialog</name>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="14"/>
<source>Set GPG Signing</source>
<translation>GPG署名の指定</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="26"/>
<source>Global</source>
<translation>グローバル</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="39"/>
<location filename="../../SetGpgSigningDialog.cpp" line="29"/>
<source>Repository</source>
<translation>リポジトリ</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="61"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="71"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="81"/>
<source>Mail</source>
<translation>メール</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="93"/>
<source>Select</source>
<translation>選択</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="113"/>
<source>Clear</source>
<translation>消去</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="127"/>
<source>Configure...</source>
<translation>設定...</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="147"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="154"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>SetRemoteUrlDialog</name>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="14"/>
<source>Set Remote URL</source>
<translation>リモートURLの設定</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="20"/>
<source>Current URLs</source>
<translation>現在のURL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="30"/>
<source>New URL</source>
<translation>新しいURL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="36"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="91"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="98"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="43"/>
<source>URL</source>
<translation></translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="63"/>
<source>&amp;Test</source>
<translation>テスト(&amp;T)</translation>
</message>
</context>
<context>
<name>SetUserDialog</name>
<message>
<location filename="../../SetUserDialog.ui" line="14"/>
<source>Set User</source>
<translation>ユーザーの設定</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="20"/>
<source>Global</source>
<translation>グローバル</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="27"/>
<location filename="../../SetUserDialog.cpp" line="31"/>
<source>Repository</source>
<translation>リポジトリ</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="42"/>
<source>Name</source>
<translation>名前</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="52"/>
<source>Mail</source>
<translation>メール</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="66"/>
<source>Get icon from Gravatar</source>
<translation>Gravatarからアイコンを取得</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="122"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="132"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>SettingBehaviorForm</name>
<message>
<location filename="../../SettingBehaviorForm.ui" line="14"/>
<source>Behavior</source>
<translation>動作</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="20"/>
<location filename="../../SettingBehaviorForm.cpp" line="43"/>
<source>Default working folder</source>
<translation>既定の作業フォルダ</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="29"/>
<source>Browse...</source>
<translation>参照...</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="39"/>
<source>Automatically fetch when opening the repository</source>
<translation>リポジトリを開くとき自動的にフェッチする</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="46"/>
<source>Get committer&apos;s icon from gravatar.com</source>
<translation>gravatar.comからアイコンを取得する</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="61"/>
<source>Maximum number of commit item acquisitions</source>
<translation>取得するコミット情報の最大個数</translation>
</message>
<message>
<source>Watch remote changes periodically</source>
<oldsource>Periodically watch remote updates</oldsource>
<translation type="vanished">定期的リモートの変更を監視する</translation>
</message>
<message>
<source>interval</source>
<oldsource>interval in min:</oldsource>
<translation type="vanished">間隔</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="94"/>
<source>GPG signing policy</source>
<oldsource>GPG Signing Policy</oldsource>
<translation>GPG署名ポリシー</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="101"/>
<source>Configure...</source>
<translation>設定...</translation>
</message>
<message>
<source>Disable</source>
<translation type="vanished">無効</translation>
</message>
<message>
<source>1 min</source>
<translation type="vanished">1分</translation>
</message>
<message>
<source>%1 mins</source>
<translation type="vanished">%1分</translation>
</message>
</context>
<context>
<name>SettingExampleForm</name>
<message>
<location filename="../../SettingExampleForm.ui" line="14"/>
<source>Example</source>
<translation></translation>
</message>
<message>
<location filename="../../SettingExampleForm.ui" line="20"/>
<source>Underconstruction</source>
<translation></translation>
</message>
</context>
<context>
<name>SettingGeneralForm</name>
<message>
<location filename="../../SettingGeneralForm.ui" line="14"/>
<source>General</source>
<translation>一般</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="20"/>
<source>Language</source>
<translation>言語</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="31"/>
<source>Change Language...</source>
<translation>言語の変更...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="54"/>
<source>Change Theme...</source>
<translation>テーマの変更...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="66"/>
<source>Remember and restore window position</source>
<translation>ウィンドウの位置を記憶し復元する</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="73"/>
<source>Enable high DPI scaling</source>
<translation>高精細画面のスケーリングを行う</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="43"/>
<source>Theme</source>
<translation>テーマ</translation>
</message>
<message>
<source>Japanese</source>
<translation type="vanished">日本語</translation>
</message>
<message>
<source>Russian</source>
<translation type="vanished">ロシア語</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="19"/>
<source>Standard</source>
<translation>標準</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="20"/>
<source>Dark</source>
<translation>ダーク</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="82"/>
<source>Select Language</source>
<translation>言語の選択</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="106"/>
<source>Select Theme</source>
<translation>テーマの選択</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="93"/>
<source>(Changes are applied at next run)</source>
<translation>(設定は次の実行時に有効になります)</translation>
</message>
</context>
<context>
<name>SettingNetworkForm</name>
<message>
<location filename="../../SettingNetworkForm.ui" line="14"/>
<source>Network</source>
<translation>ネットワーク</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="20"/>
<source>Proxy server</source>
<oldsource>Proxy Server</oldsource>
<translation>プロキシサーバー</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="26"/>
<source>No proxy</source>
<oldsource>No Proxy</oldsource>
<translation>プロキシなし</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="33"/>
<source>Auto detect</source>
<oldsource>Auto Detect</oldsource>
<translation>自動検出</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="40"/>
<source>Manual</source>
<translation>手動</translation>
</message>
</context>
<context>
<name>SettingProgramsForm</name>
<message>
<location filename="../../SettingProgramsForm.ui" line="14"/>
<source>Programs</source>
<translation>プログラム</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="20"/>
<source>Git command</source>
<translation>Git コマンド</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="29"/>
<location filename="../../SettingProgramsForm.ui" line="48"/>
<location filename="../../SettingProgramsForm.ui" line="67"/>
+ <location filename="../../SettingProgramsForm.ui" line="86"/>
<source>Browse...</source>
<translation>参照...</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="39"/>
<source>File command</source>
<translation>File コマンド</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="58"/>
<source>GPG command (option)</source>
<translation>GPGコマンド(オプション)</translation>
</message>
+ <message>
+ <location filename="../../SettingProgramsForm.ui" line="77"/>
+ <source>SSH command (option)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../../SettingsDialog.ui" line="14"/>
<source>Settings</source>
<translation>設定</translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="141"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="148"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>TextEditDialog</name>
<message>
<location filename="../../TextEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="48"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="58"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>&amp;Close</source>
<translation>閉じる(&amp;C)</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>Cacnel</source>
<translation>キャンセル</translation>
</message>
</context>
<context>
<name>WelcomeWizardDialog</name>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="14"/>
<source>Welcome to the Guitar Wizard</source>
<translation>Guitarウィザードへようこそ</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="45"/>
<source>Helper Tools</source>
<translation>ヘルパープログラム</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="61"/>
<location filename="../../WelcomeWizardDialog.ui" line="338"/>
<source>git</source>
<translation></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="71"/>
<location filename="../../WelcomeWizardDialog.ui" line="88"/>
<location filename="../../WelcomeWizardDialog.ui" line="248"/>
<source>Browse</source>
<translation>参照</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="78"/>
<location filename="../../WelcomeWizardDialog.ui" line="352"/>
<source>file</source>
<translation></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="120"/>
<source>Global User Information</source>
<translation>グローバルユーザー情報</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="142"/>
<source>git config --global user.name</source>
<translation></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="152"/>
<source>git config --global user.email</source>
<translation></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="168"/>
<source>Get icon from Gravatar</source>
<translation>Gravatarからアイコンを取得</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="222"/>
<location filename="../../WelcomeWizardDialog.cpp" line="163"/>
<source>Default Working Folder</source>
<translation>規定の作業フォルダ</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="238"/>
<location filename="../../WelcomeWizardDialog.ui" line="324"/>
<source>folder</source>
<translation>フォルダ</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="280"/>
<source>Ready to play the Guitar !</source>
<translation>Guitarの準備ができました!</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="296"/>
<source>user</source>
<translation>ユーザー</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="310"/>
<source>email</source>
<translation>メール</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="426"/>
<location filename="../../WelcomeWizardDialog.cpp" line="155"/>
<source>&lt;&lt; Prev</source>
<translation>&lt;&lt; 戻る</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="433"/>
<location filename="../../WelcomeWizardDialog.cpp" line="156"/>
<source>Next &gt;&gt;</source>
<translation>次へ &gt;&gt;</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="126"/>
<source>Cancel</source>
<translation>キャンセル</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="152"/>
<source>Finish</source>
<translation>完了</translation>
</message>
</context>
</TS>
diff --git a/src/resources/translations/Guitar_ru.qm b/src/resources/translations/Guitar_ru.qm
index 9b31be9..e31c3b4 100644
Binary files a/src/resources/translations/Guitar_ru.qm and b/src/resources/translations/Guitar_ru.qm differ
diff --git a/src/resources/translations/Guitar_ru.ts b/src/resources/translations/Guitar_ru.ts
index 0f5fbcd..8de89c5 100644
--- a/src/resources/translations/Guitar_ru.ts
+++ b/src/resources/translations/Guitar_ru.ts
@@ -1,2982 +1,3037 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="ru_RU">
<context>
<name>AboutDialog</name>
<message>
<location filename="../../AboutDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="34"/>
<location filename="../../AboutDialog.ui" line="46"/>
<location filename="../../AboutDialog.ui" line="58"/>
<location filename="../../AboutDialog.ui" line="70"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="86"/>
<source>&lt;a href=&quot;https://github.com/soramimi/Guitar&quot;&gt;https://github.com/soramimi/Guitar&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../AboutDialog.cpp" line="25"/>
<source>About %1</source>
<translation>О %1</translation>
</message>
</context>
<context>
<name>AreYouSureYouWantToContinueConnectingDialog</name>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="14"/>
<source>Unknown Host</source>
<translation>Узел не найден</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="20"/>
<source>Are you sure you want to continue connecting (yes/no)?</source>
<translation>Повторить попытку соединения? (Да/нет)?</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="52"/>
<source>Continue</source>
<translation>Да, продолжить</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="59"/>
<source>Close</source>
<translation>Нет, закрыть</translation>
</message>
</context>
<context>
<name>BasicMainWindow</name>
<message>
- <location filename="../../BasicMainWindow.cpp" line="261"/>
+ <location filename="../../BasicMainWindow.cpp" line="243"/>
<source>git command not specified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="374"/>
+ <location filename="../../BasicMainWindow.cpp" line="358"/>
<source>The URL is a valid repository</source>
<translation>URL ссылается на корректный репозиторий</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="375"/>
+ <location filename="../../BasicMainWindow.cpp" line="359"/>
<source>Failed to access the URL</source>
<translation>Нет доступа по URL</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="380"/>
+ <location filename="../../BasicMainWindow.cpp" line="364"/>
<source>Remote Repository</source>
<translation>Репозиторий-истоник</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="405"/>
+ <location filename="../../BasicMainWindow.cpp" line="389"/>
<source>&amp;Property</source>
<translation>&amp;Свойства</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1273"/>
+ <location filename="../../BasicMainWindow.cpp" line="1272"/>
<source>Select %1 command</source>
<translation>Выбор %1 команды</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1452"/>
+ <location filename="../../BasicMainWindow.cpp" line="1447"/>
<source>Revert all files</source>
<translation>Отменить (Revert) изменения во всех файлах</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1610"/>
+ <location filename="../../BasicMainWindow.cpp" line="1605"/>
<source>The folder is not a valid git repository.</source>
<translation>Папка не является репозиторием Git.</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1614"/>
+ <location filename="../../BasicMainWindow.cpp" line="1609"/>
<source>Do you want to initialize it as a git repository ?</source>
<translation>Инициализировать репозиторий Git?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1615"/>
+ <location filename="../../BasicMainWindow.cpp" line="1610"/>
<source>Initialize Repository</source>
<translation>Инициализировать репозиторий</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1745"/>
+ <location filename="../../BasicMainWindow.cpp" line="1740"/>
<source>No repository selected</source>
<translation>Репозиторий не выбран</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<source>Repository Property</source>
- <translation>Свойства репозитория</translation>
+ <translation type="vanished">Свойства репозитория</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Not a valid git repository</source>
<translation>Каталог не является репозиторием Git</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Open Repository</source>
<translation>Открыть репозиторий</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>No such folder</source>
<translation>Каталог не существует</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>Remove from bookmark ?</source>
<translation>Удалить из закладок?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2248"/>
<source>, %1 ahead</source>
<translation>, %1 впереди</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2251"/>
<source>, %1 behind</source>
<translation>, %1 позади</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Confirm Remove</source>
<translation>Подтвердите удаление</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation>Вы точно хотите удалить репозиторий из закладок?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>(Files will NOT be deleted)</source>
<translation>(Файлы НЕ будут удалены)</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2302"/>
<source>A file with same name already exists</source>
<translation>Существует файл с тем же именем</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2303"/>
<location filename="../../BasicMainWindow.cpp" line="2308"/>
<location filename="../../BasicMainWindow.cpp" line="2325"/>
<location filename="../../BasicMainWindow.cpp" line="2330"/>
<source>Clone</source>
<translation>Клонировать (Clone)</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2307"/>
<source>A folder with same name already exists</source>
<translation>Существует папка с тем же именем</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2324"/>
<source>Invalid folder</source>
<translation>Ошибочный каталог</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2329"/>
<source>No such folder. Create it now ?</source>
<translation>Каталог не существует. Создать?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit</source>
<translation>Фиксировать (Commit)</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit message can not be omitted.</source>
<translation>Комментарий к фиксации является обязательным.</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2415"/>
+ <location filename="../../BasicMainWindow.cpp" line="2419"/>
<source>Failed to commit</source>
<translation>Не удалось зафиксировать</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2449"/>
- <location filename="../../BasicMainWindow.cpp" line="2533"/>
+ <location filename="../../BasicMainWindow.cpp" line="2453"/>
+ <location filename="../../BasicMainWindow.cpp" line="2538"/>
<source>Connection refused.</source>
<translation>Отказано в соединении.</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2502"/>
+ <location filename="../../BasicMainWindow.cpp" line="2506"/>
<source>No remote repository is registered.</source>
<translation>Репозиторий источника не зарегистрирован.</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2524"/>
+ <location filename="../../BasicMainWindow.cpp" line="2529"/>
<source>The current branch %1 has no upstream branch.</source>
<translation>Текущая ветвь %1 не содержится в источнике.</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2527"/>
+ <location filename="../../BasicMainWindow.cpp" line="2532"/>
<source>You try push --set-upstream</source>
<translation>Попытайтесь отправить (Push) с опцией --set-upstream</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2616"/>
+ <location filename="../../BasicMainWindow.cpp" line="2621"/>
<source>Failed to delete the branch &apos;%1&apos;</source>
<translation>Не удалось удалить ветвь &apos;%1&apos;</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">ブランチの削除に失敗しました : &apos;%1&apos;</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2680"/>
+ <location filename="../../BasicMainWindow.cpp" line="2685"/>
<source>Are you sure you want to run the following command ?</source>
<translation>Вы точно хотите выполнить следующую команду?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2701"/>
+ <location filename="../../BasicMainWindow.cpp" line="2706"/>
<source>Reset a file</source>
<translation>Отбросить изменения (Reset) файла</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2715"/>
+ <location filename="../../BasicMainWindow.cpp" line="2720"/>
<source>Unnamed</source>
<translation>Безымянный</translation>
</message>
</context>
<context>
<name>BasicRepositoryDialog</name>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="66"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="77"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="67"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="78"/>
<source>Purpose</source>
<translation>Назначение</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="68"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="79"/>
<source>URL</source>
<translation></translation>
</message>
</context>
<context>
<name>BigDiffWindow</name>
<message>
<location filename="../../BigDiffWindow.ui" line="14"/>
<source>Diff</source>
<translation></translation>
</message>
</context>
<context>
<name>BlameWindow</name>
<message>
<location filename="../../BlameWindow.ui" line="14"/>
<source>Blame</source>
<translation></translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="45"/>
<source>Information</source>
<translation>Информация</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="60"/>
<source>Commit</source>
<translation>Фиксация (Commit)</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="70"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="90"/>
<source>Message</source>
<translation>Комментарий</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="80"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="118"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
</context>
<context>
<name>CheckoutDialog</name>
<message>
<location filename="../../CheckoutDialog.ui" line="14"/>
<source>Checkout</source>
<translation>Проверка (Checkout)</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="20"/>
<location filename="../../CheckoutDialog.ui" line="27"/>
<location filename="../../CheckoutDialog.ui" line="34"/>
<source>RadioButton</source>
<translation></translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="63"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="70"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>CherryPickDialog</name>
<message>
<location filename="../../CherryPickDialog.ui" line="14"/>
<source>Cherry-pick</source>
<translation type="unfinished">Выборочное применение (Cherry-pick)</translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="20"/>
<source>HEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="49"/>
<source>Pick</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="78"/>
<source>Mainline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="109"/>
<source>Allow empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="131"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="138"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="19"/>
<source>Commit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="20"/>
<source>Date</source>
<translation type="unfinished">Дата</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="21"/>
<source>Author</source>
<translation type="unfinished">Автор</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="22"/>
<source>Message</source>
<translation type="unfinished">Комментарий</translation>
</message>
</context>
<context>
<name>CloneDialog</name>
<message>
<location filename="../../CloneDialog.ui" line="14"/>
- <location filename="../../CloneDialog.ui" line="103"/>
+ <location filename="../../CloneDialog.ui" line="113"/>
<source>Clone</source>
<translation>Клонировать (Clone)</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="22"/>
<source>Remote</source>
<translation>Источник</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="39"/>
<source>&amp;Test</source>
<translation>&amp;Тестировать</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="46"/>
<source>Local</source>
<translation>Локальный</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="56"/>
<source>Browse</source>
<translation>Обзор</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="83"/>
+ <location filename="../../CloneDialog.ui" line="93"/>
<source>Open existing local directory...</source>
<translation>Открыть локальную копию...</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="113"/>
+ <location filename="../../CloneDialog.ui" line="123"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="40"/>
+ <location filename="../../CloneDialog.cpp" line="41"/>
<source>Search</source>
<translation>Поиск</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="41"/>
+ <location filename="../../CloneDialog.cpp" line="42"/>
<source>GitHub</source>
<translation></translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="113"/>
+ <location filename="../../CloneDialog.cpp" line="115"/>
<source>Checkout into</source>
<translation>Проверить в</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="125"/>
+ <location filename="../../CloneDialog.cpp" line="127"/>
<source>Open existing directory</source>
<translation>Открыть существующий каталог</translation>
</message>
</context>
<context>
<name>CloneFromGitHubDialog</name>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="14"/>
<source>Clone from GitHub</source>
<translation>Клонировать из GitHub</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="45"/>
<source>ssh</source>
<translation></translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="55"/>
<source>http</source>
<translation></translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="95"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="102"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>CommitDialog</name>
<message>
<location filename="../../CommitDialog.ui" line="14"/>
<source>Commit</source>
<translation>Фиксация (Commit)</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="27"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="49"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="68"/>
<location filename="../../CommitDialog.ui" line="94"/>
<location filename="../../CommitDialog.ui" line="139"/>
<location filename="../../CommitDialog.ui" line="159"/>
<location filename="../../CommitDialog.ui" line="179"/>
<source>---</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="75"/>
<location filename="../../CommitDialog.ui" line="166"/>
<source>Mail</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="111"/>
<source>GPG Signing</source>
<translation>Подпись GPG</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="126"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="146"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="189"/>
<source>Configure...</source>
<translation>Настроить...</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="198"/>
+ <location filename="../../CommitDialog.ui" line="203"/>
<source>Message</source>
<translation>Комментарий</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="223"/>
+ <location filename="../../CommitDialog.ui" line="210"/>
+ <source>Amend</source>
+ <translation>изменить</translation>
+ </message>
+ <message>
+ <location filename="../../CommitDialog.ui" line="237"/>
<source>OK</source>
<translation></translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="233"/>
+ <location filename="../../CommitDialog.ui" line="247"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>CommitExploreWindow</name>
<message>
<location filename="../../CommitExploreWindow.ui" line="14"/>
<source>Commit Explorer</source>
<translation>Обзор фиксации</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="65"/>
<source>Commit ID</source>
<translation>ID фиксации</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="82"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="89"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.cpp" line="78"/>
<source>Commit</source>
<translation>Фиксация (Commit)</translation>
</message>
</context>
<context>
<name>CommitPropertyDialog</name>
<message>
<location filename="../../CommitPropertyDialog.ui" line="14"/>
<source>Commit Property</source>
<oldsource>Commit Properties</oldsource>
<translation>Свойства фиксации</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="46"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="56"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="66"/>
<location filename="../../CommitPropertyDialog.ui" line="196"/>
<source>Mail</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="154"/>
<source>GPG Sign</source>
<translation>Подпись GPG</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="176"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="186"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="233"/>
<source>Commit ID</source>
<translation>ID фиксации</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="243"/>
<source>Parent IDs</source>
<translation>ID родительских фиксаций</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="265"/>
<source>Files...</source>
<translation>Файлы...</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="285"/>
<source>Explorer</source>
<translation>Обзор</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="305"/>
<source>Checkout</source>
<translation>Проверка (Checkout)</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="312"/>
<source>Jump</source>
<translation>Перейти</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="332"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.cpp" line="60"/>
<source>&lt;Unknown&gt;</source>
<translation>&lt;Неизвестно&gt;</translation>
</message>
</context>
<context>
<name>CommitViewWindow</name>
<message>
<location filename="../../CommitViewWindow.ui" line="14"/>
<source>Commit View</source>
<translation>Просмотр фиксации (Commit)</translation>
</message>
<message>
<location filename="../../CommitViewWindow.cpp" line="58"/>
<source>History</source>
<translation>История</translation>
</message>
</context>
<context>
<name>ConfigCredentialHelperDialog</name>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="26"/>
<source>wincred</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="39"/>
<source>winstore</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="52"/>
<source>None</source>
<translation>Нет</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="65"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="78"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="91"/>
<source>Other</source>
<translation>Другие</translation>
</message>
</context>
<context>
<name>ConfigSigningDialog</name>
<message>
<location filename="../../ConfigSigningDialog.ui" line="14"/>
<source>Signing Policy</source>
<translation>Политика подписания</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="20"/>
<source>Config commit.gpgsign</source>
<translation>Настройка commit.gpgsign</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="32"/>
<source>global</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="42"/>
<source>local</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="70"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="77"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>CreateRepositoryDialog</name>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="14"/>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="46"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Create Repository</source>
<translation>Создать репозиторий</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="22"/>
<source>Path</source>
<translation>Путь</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="32"/>
<source>Browse</source>
<translation>Обзор</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="54"/>
<source>Bookmark</source>
<translation>Закладка</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="63"/>
<location filename="../../CreateRepositoryDialog.ui" line="88"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="76"/>
<source>Remote</source>
<translation>Источник</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="98"/>
<source>URL</source>
<translation></translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="108"/>
<source>Test</source>
<translation>Тестировать</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="146"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="153"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="19"/>
<source>A valid git repository already exists there.</source>
<translation>Репозиторий Git уже существует.</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<source>The specified path is not a directory.</source>
<translation>Путь не является каталогом.</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Remote name is invalid.</source>
<translation>Имя источника некорректно.</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="62"/>
<source>Destination Path</source>
<translation>Путь назначения</translation>
</message>
</context>
<context>
<name>DeleteBranchDialog</name>
<message>
<location filename="../../DeleteBranchDialog.ui" line="14"/>
<source>Delete Branch</source>
<translation>Удалить ветвь</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="25"/>
<source>&amp;All branches</source>
<translation>Все ветви (&amp;A)</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="45"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="52"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.cpp" line="23"/>
<source>Delete Remote Branch</source>
<translation>Удалить ветвь в источнике</translation>
</message>
</context>
<context>
<name>DeleteTagsDialog</name>
<message>
<location filename="../../DeleteTagsDialog.ui" line="14"/>
<source>Delete tags</source>
<translation>Удалить тэги</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="32"/>
<source>Check all</source>
<translation>Проверить все</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="52"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="62"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>DoYouWantToInitDialog</name>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="14"/>
<source>Init Repository</source>
<translation>Создать репозиторий</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="20"/>
<source>The folder:</source>
<translation>Каталог:</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="32"/>
<source>is not a valid git working copy.</source>
<translation>не является репозиторием.</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="39"/>
<source>Do you want to init it as a git repository ?</source>
<translation>Инициализировать репозиторий Git?</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="81"/>
<source>Yes, Please init it.</source>
<translation>Да, инициализировать.</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="88"/>
<source>No, Stop it.</source>
<translation>Нет, отменить.</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="140"/>
<source>Please choose option</source>
<translation>Продолжить</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="20"/>
<source>Next...</source>
<translation>Далее...</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="26"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>EditGitIgnoreDialog</name>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="14"/>
<source>Edit Git Ignore</source>
<translation>Редактировать список игнорирования</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="20"/>
<location filename="../../EditGitIgnoreDialog.ui" line="27"/>
<location filename="../../EditGitIgnoreDialog.ui" line="34"/>
<location filename="../../EditGitIgnoreDialog.ui" line="41"/>
<source>RadioButton</source>
<translation></translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="63"/>
<source>Edit the file</source>
<translation>Редактировать</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="83"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="90"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>EditRemoteDialog</name>
<message>
<location filename="../../EditRemoteDialog.ui" line="14"/>
<source>Edit Remote</source>
<translation>Свойства источника</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="20"/>
<source>Remote</source>
<translation>Источник</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="26"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="33"/>
<source>URL</source>
<translation></translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="53"/>
<source>&amp;Test</source>
<translation>&amp;Проверить</translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="81"/>
+ <location filename="../../EditRemoteDialog.ui" line="104"/>
<source>OK</source>
<translation></translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="88"/>
+ <location filename="../../EditRemoteDialog.ui" line="111"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
</context>
<context>
<name>EditTagsDialog</name>
<message>
<location filename="../../EditTagsDialog.ui" line="14"/>
<source>Edit Tags</source>
<translation>Редактор тэгов</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="41"/>
<source>Add...</source>
<translation>Добавить...</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="48"/>
<source>Delete</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="68"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
</context>
<context>
<name>ExperimentDialog</name>
<message>
<location filename="../../ExperimentDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
</context>
<context>
<name>FileDiffWidget</name>
<message>
<location filename="../../FileDiffWidget.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
</context>
<context>
<name>FileHistoryWindow</name>
<message>
<location filename="../../FileHistoryWindow.ui" line="14"/>
<source>File History</source>
<translation>История файла</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.ui" line="20"/>
<location filename="../../FileHistoryWindow.ui" line="27"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="111"/>
<source>Commit</source>
<translation>Фиксация (Commit)</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="112"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="113"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="114"/>
<source>Message</source>
<translation>Комментарий</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">概要</translation>
</message>
</context>
<context>
<name>FilePropertyDialog</name>
<message>
<location filename="../../FilePropertyDialog.ui" line="14"/>
<source>File Property</source>
<oldsource>File Properties</oldsource>
<translation>Свойства файла</translation>
</message>
<message>
<location filename="../../FilePropertyDialog.ui" line="78"/>
<source>&amp;Close</source>
<translation>&amp;Закрыть</translation>
</message>
</context>
+<context>
+ <name>FileViewWidget</name>
+ <message>
+ <location filename="../../FileViewWidget.cpp" line="30"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>FindCommitDialog</name>
<message>
<location filename="../../FindCommitDialog.ui" line="14"/>
<source>Find Commit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="54"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="61"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>InputNewTagDialog</name>
<message>
<location filename="../../InputNewTagDialog.ui" line="14"/>
<source>Edit tag</source>
<translation>Редактор тэга</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="31"/>
<source>Tag</source>
<translation>Тэг</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="58"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="65"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>JumpDialog</name>
<message>
<location filename="../../JumpDialog.ui" line="14"/>
<source>Jump</source>
<translation>Перейти</translation>
</message>
<message>
<source>Branches and Tags</source>
<translation type="vanished">ブランチとタグ</translation>
</message>
<message>
<source>&amp;Filter</source>
<translation type="vanished">フィルタ(&amp;F)</translation>
</message>
<message>
<source>Find</source>
<translation type="vanished">検索</translation>
</message>
<message>
<source>&amp;Checkout</source>
<translation type="vanished">チェックアウト(&amp;C)</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="20"/>
<source>Branch, Tag or Commit-ID :</source>
<translation>Ветвь, Тэг или ID фиксации :</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="71"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="81"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../JumpDialog.cpp" line="39"/>
<source>Name</source>
<translation>Имя</translation>
</message>
</context>
<context>
<name>Languages</name>
<message>
<location filename="../../Languages.cpp" line="6"/>
<source>English</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../Languages.cpp" line="7"/>
<source>Japanese</source>
<translation type="unfinished">Японский</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="8"/>
<source>Russian</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../Languages.cpp" line="9"/>
<source>Chinese (Simplified)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../Languages.cpp" line="10"/>
<source>Chinese (Traditional/Taiwan)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LineEditDialog</name>
<message>
<location filename="../../LineEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="45"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="52"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../MainWindow.ui" line="14"/>
<source>Guitar</source>
<translation></translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="96"/>
- <location filename="../../MainWindow.ui" line="1421"/>
- <location filename="../../MainWindow.ui" line="1424"/>
+ <location filename="../../MainWindow.ui" line="1416"/>
+ <location filename="../../MainWindow.ui" line="1419"/>
<source>Clone</source>
<translation>Клонировать</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="131"/>
- <location filename="../../MainWindow.cpp" line="1140"/>
- <location filename="../../MainWindow.cpp" line="1141"/>
+ <location filename="../../MainWindow.cpp" line="1135"/>
+ <location filename="../../MainWindow.cpp" line="1136"/>
<source>Fetch</source>
<translation>Загрузить</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="166"/>
<source>Pull</source>
<translation>Обновить</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="201"/>
<source>Push</source>
<translation>Выгрузить</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="303"/>
- <location filename="../../MainWindow.ui" line="1548"/>
+ <location filename="../../MainWindow.ui" line="1543"/>
<source>Terminal</source>
<translation>Терминал</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="338"/>
- <location filename="../../MainWindow.ui" line="1557"/>
+ <location filename="../../MainWindow.ui" line="1552"/>
<source>Explorer</source>
<translation>Обзор</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="424"/>
<source>Repository</source>
<translation>Репозиторий</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="431"/>
<source>Branch Name</source>
<translation>Имя ветви</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="483"/>
- <location filename="../../MainWindow.ui" line="1592"/>
+ <location filename="../../MainWindow.ui" line="1587"/>
<source>Offline</source>
<translation>Офлайн</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="473"/>
- <location filename="../../MainWindow.ui" line="1587"/>
+ <location filename="../../MainWindow.ui" line="1582"/>
<source>Online</source>
<translation>Онлайн</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="799"/>
- <location filename="../../MainWindow.cpp" line="1853"/>
+ <location filename="../../MainWindow.cpp" line="1848"/>
<source>Unstage</source>
<translation>Не отслеживать</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="828"/>
<source>Select all</source>
<translation>Выбрать всё</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="863"/>
- <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1718"/>
<source>Stage</source>
<translation>Отслеживать</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="892"/>
- <location filename="../../MainWindow.cpp" line="879"/>
+ <location filename="../../MainWindow.cpp" line="874"/>
<source>Commit</source>
<translation>Фиксация</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1023"/>
<source>&amp;File</source>
<translation>&amp;Файл</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1034"/>
<source>&amp;View</source>
<translation>Вид(&amp;V)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1040"/>
+ <location filename="../../MainWindow.ui" line="1041"/>
<source>&amp;Edit</source>
<translation>Редактировать(&amp;E)</translation>
</message>
<message>
<source>Destructive</source>
<translation type="vanished">注意を要するコマンド</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1412"/>
+ <location filename="../../MainWindow.ui" line="1407"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1434"/>
- <location filename="../../MainWindow.cpp" line="1595"/>
+ <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.cpp" line="1590"/>
<source>Edit tags...</source>
<translation>Правка тэгов...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1437"/>
+ <location filename="../../MainWindow.ui" line="1432"/>
<source>Edit tags</source>
<translation>Правка тэгов</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1562"/>
+ <location filename="../../MainWindow.ui" line="1557"/>
<source>Clean -df</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1567"/>
+ <location filename="../../MainWindow.ui" line="1562"/>
<source>Reset --hard</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1494"/>
+ <location filename="../../MainWindow.ui" line="1489"/>
<source>Create a repository</source>
<translation>Создание репозитория</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1476"/>
<source>Push upstream</source>
<translation>Выгрузить в источник</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1503"/>
+ <location filename="../../MainWindow.ui" line="1498"/>
<source>Stop process</source>
<translation>Остановить</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1508"/>
+ <location filename="../../MainWindow.ui" line="1503"/>
<source>E&amp;xit</source>
<translation>В&amp;ыход</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1511"/>
+ <location filename="../../MainWindow.ui" line="1506"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1516"/>
+ <location filename="../../MainWindow.ui" line="1511"/>
<source>Reflog...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1516"/>
<source>Property...</source>
<translation>Свойства...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1526"/>
- <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1524"/>
<source>Set GPG signing</source>
<translation>Настройка подписей GPG</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1539"/>
+ <location filename="../../MainWindow.ui" line="1534"/>
<source>Fetch --prune</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1055"/>
+ <location filename="../../MainWindow.ui" line="1056"/>
<source>&amp;Help</source>
<translation>Помощь (&amp;H)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="252"/>
- <location filename="../../MainWindow.ui" line="1628"/>
- <location filename="../../MainWindow.cpp" line="1353"/>
+ <location filename="../../MainWindow.ui" line="1623"/>
+ <location filename="../../MainWindow.cpp" line="1348"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="656"/>
<source>...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1061"/>
+ <location filename="../../MainWindow.ui" line="1062"/>
<source>&amp;Window</source>
<translation>Окно(&amp;W)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1067"/>
+ <location filename="../../MainWindow.ui" line="1073"/>
<source>&amp;Repository</source>
<translation>Репозиторий(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1071"/>
- <location filename="../../MainWindow.ui" line="1572"/>
+ <location filename="../../MainWindow.ui" line="1077"/>
+ <location filename="../../MainWindow.ui" line="1567"/>
<source>Stash</source>
<translation>Спрятать</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1098"/>
+ <location filename="../../MainWindow.ui" line="1104"/>
<source>Re&amp;mote</source>
<translation>Источник (&amp;M)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1113"/>
+ <location filename="../../MainWindow.ui" line="1119"/>
<source>&amp;Destructive</source>
<translation>Разрушительные (&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1125"/>
- <source>Experimental</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../MainWindow.ui" line="1155"/>
+ <location filename="../../MainWindow.ui" line="1150"/>
<source>Log</source>
<translation>Журнал</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1325"/>
+ <location filename="../../MainWindow.ui" line="1320"/>
<source>&amp;Open existing working copy...</source>
<translation>Открыть существующий репозиторий (&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1328"/>
- <location filename="../../MainWindow.cpp" line="2027"/>
+ <location filename="../../MainWindow.ui" line="1323"/>
+ <location filename="../../MainWindow.cpp" line="2022"/>
<source>Add existing working copy</source>
<translation>Добавить существующий репозиторий</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1333"/>
- <location filename="../../MainWindow.ui" line="1336"/>
+ <location filename="../../MainWindow.ui" line="1328"/>
+ <location filename="../../MainWindow.ui" line="1331"/>
<source>Refresh</source>
<translation>Обновить</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1339"/>
+ <location filename="../../MainWindow.ui" line="1334"/>
<source>F5</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1348"/>
+ <location filename="../../MainWindow.ui" line="1343"/>
<source>&amp;Commit</source>
<translation>Фиксация (&amp;Commit)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1357"/>
+ <location filename="../../MainWindow.ui" line="1352"/>
<source>&amp;Push</source>
<translation>Выгрузить (&amp;Push)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1365"/>
+ <location filename="../../MainWindow.ui" line="1360"/>
<source>test</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1368"/>
+ <location filename="../../MainWindow.ui" line="1363"/>
<source>Ctrl+T</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1377"/>
+ <location filename="../../MainWindow.ui" line="1372"/>
<source>Pu&amp;ll</source>
<translation>Обновить (Pu&amp;ll)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1381"/>
<source>&amp;Fetch</source>
<translation>Загрузить (&amp;Fetch)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1391"/>
- <location filename="../../MainWindow.ui" line="1394"/>
+ <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1389"/>
<source>Edit global .gitconfig</source>
<translation>Прака глобального .gitconfig</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1399"/>
+ <location filename="../../MainWindow.ui" line="1394"/>
<source>Edit .git/config</source>
<translation>Правка .git/config</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1404"/>
+ <location filename="../../MainWindow.ui" line="1399"/>
<source>Edit .gitignore</source>
<translation>Правка .gitignore</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1409"/>
+ <location filename="../../MainWindow.ui" line="1404"/>
<source>&amp;Settings...</source>
<translation>Настройки (&amp;S)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1458"/>
+ <location filename="../../MainWindow.ui" line="1453"/>
<source>F4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1463"/>
+ <location filename="../../MainWindow.ui" line="1458"/>
<source>&amp;Jump...</source>
<translation>Переход (&amp;Jump)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1466"/>
+ <location filename="../../MainWindow.ui" line="1461"/>
<source>Ctrl+J</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.ui" line="1466"/>
<source>Check&amp;out...</source>
<translation>Проверка (C&amp;heckout)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1476"/>
- <location filename="../../MainWindow.cpp" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.cpp" line="1595"/>
<source>Delete branch...</source>
<translation>Удалить ветвь...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1577"/>
+ <location filename="../../MainWindow.ui" line="1572"/>
<source>Apply</source>
<translation>Применить</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1582"/>
+ <location filename="../../MainWindow.ui" line="1577"/>
<source>Drop</source>
<translation>Отменить</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1595"/>
<source>Repositories panel</source>
<translation>Панель репозиториев</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1603"/>
+ <location filename="../../MainWindow.ui" line="1598"/>
<source>Ctrl+R</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1608"/>
+ <location filename="../../MainWindow.ui" line="1603"/>
<source>&amp;Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1611"/>
+ <location filename="../../MainWindow.ui" line="1606"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1616"/>
+ <location filename="../../MainWindow.ui" line="1611"/>
<source>Find next</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1619"/>
+ <location filename="../../MainWindow.ui" line="1614"/>
<source>F3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1633"/>
+ <location filename="../../MainWindow.ui" line="1628"/>
<source>Jump to &amp;HEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1636"/>
+ <location filename="../../MainWindow.ui" line="1631"/>
<source>Ctrl+H</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1641"/>
+ <location filename="../../MainWindow.ui" line="1636"/>
<source>Merge...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1646"/>
+ <location filename="../../MainWindow.ui" line="1641"/>
<source>Expand commit log</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1649"/>
+ <location filename="../../MainWindow.ui" line="1644"/>
<source>Ctrl+2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1654"/>
+ <location filename="../../MainWindow.ui" line="1649"/>
<source>Expand file list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1657"/>
+ <location filename="../../MainWindow.ui" line="1652"/>
<source>Ctrl+3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1662"/>
+ <location filename="../../MainWindow.ui" line="1657"/>
<source>Expand diff view</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1665"/>
+ <location filename="../../MainWindow.ui" line="1660"/>
<source>Ctrl+4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1670"/>
+ <location filename="../../MainWindow.ui" line="1668"/>
<source>Sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1673"/>
- <source>F1</source>
+ <location filename="../../MainWindow.ui" line="1671"/>
+ <source>Ctrl+1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1678"/>
+ <location filename="../../MainWindow.ui" line="1687"/>
+ <source>Show labels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1690"/>
+ <source>Ctrl+L</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1676"/>
<source>Wide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1681"/>
+ <location filename="../../MainWindow.ui" line="1679"/>
<source>F2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1486"/>
- <location filename="../../MainWindow.ui" line="1489"/>
+ <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1484"/>
<source>Reset HEAD~1</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1534"/>
- <location filename="../../MainWindow.cpp" line="1601"/>
+ <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.cpp" line="1596"/>
<source>Delete remote branch...</source>
<translation>Удалить ветвь источника...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.ui" line="1424"/>
<source>&amp;About</source>
<translation>&amp;О программе</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1442"/>
+ <location filename="../../MainWindow.ui" line="1437"/>
<source>Push all tags</source>
<translation>Выгрузить все тэги</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1447"/>
+ <location filename="../../MainWindow.ui" line="1442"/>
<source>Set config user</source>
<translation>Выбрать пользователя</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1455"/>
+ <location filename="../../MainWindow.ui" line="1450"/>
<source>&amp;Log</source>
<translation>Журнал (&amp;Log)</translation>
</message>
<message>
<source>Unnamed</source>
<translation type="vanished">無名</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="679"/>
+ <location filename="../../MainWindow.cpp" line="674"/>
<source>Default</source>
<translation>По-умолчанию</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="878"/>
+ <location filename="../../MainWindow.cpp" line="873"/>
<source>Graph</source>
<translation>Граф</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="880"/>
+ <location filename="../../MainWindow.cpp" line="875"/>
<source>Date</source>
<translation>Дата</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="881"/>
+ <location filename="../../MainWindow.cpp" line="876"/>
<source>Author</source>
<translation>Автор</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">概要</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1029"/>
- <location filename="../../MainWindow.cpp" line="1199"/>
+ <location filename="../../MainWindow.cpp" line="1024"/>
+ <location filename="../../MainWindow.cpp" line="1194"/>
<source>Uncommited changes</source>
<translation>Незафиксированные изменения</translation>
</message>
<message>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation type="vanished">リポジトリをブックマークから削除してよろしいですか?</translation>
</message>
<message>
<source>(Files will NOT be deleted)</source>
<translation type="vanished">(ファルは削除されません)</translation>
</message>
<message>
<source>Open Repository</source>
<translation type="vanished">リポジトリを開く</translation>
</message>
<message>
<source>No such folder</source>
<translation type="vanished">そのようなフォルダはありません</translation>
</message>
<message>
<source>Not a valid git repository</source>
<translation type="vanished">有効なリポジトリではありません</translation>
</message>
<message>
<source>Commit message can not be omitted.</source>
<translation type="vanished">コミットメッセージを空にすることはできません。</translation>
</message>
<message>
<source>Repository Property</source>
<translation type="vanished">リポジトリのプロパティ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1457"/>
+ <location filename="../../MainWindow.cpp" line="1452"/>
<source>&amp;Add new group</source>
<translation>Новая &amp;группа</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1458"/>
+ <location filename="../../MainWindow.cpp" line="1453"/>
<source>&amp;Delete group</source>
<translation>Удалить &amp;группу</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1459"/>
+ <location filename="../../MainWindow.cpp" line="1454"/>
<source>&amp;Rename group</source>
<translation>Переименовать группу(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1464"/>
+ <location filename="../../MainWindow.cpp" line="1459"/>
<source>New group</source>
<translation>Новая группа</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1488"/>
+ <location filename="../../MainWindow.cpp" line="1483"/>
<source>Open &amp;terminal</source>
<translation>Открыть терминал (&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1489"/>
+ <location filename="../../MainWindow.cpp" line="1484"/>
<source>Open command promp&amp;t</source>
<translation>Открыть терминал (&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1491"/>
+ <location filename="../../MainWindow.cpp" line="1486"/>
<source>&amp;Open</source>
<translation>Открыть (&amp;Open)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1502"/>
+ <location filename="../../MainWindow.cpp" line="1497"/>
<source>Open &amp;folder</source>
<translation>Открыть каталог (&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1507"/>
+ <location filename="../../MainWindow.cpp" line="1502"/>
<source>&amp;Remove</source>
<translation>Удалить (&amp;Remove)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1550"/>
+ <location filename="../../MainWindow.cpp" line="1545"/>
<source>Copy commit id (7 letters)</source>
<translation>Скопируйте ID фиксации(7 символов)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1551"/>
+ <location filename="../../MainWindow.cpp" line="1546"/>
<source>Copy commit id (completely)</source>
<translation>Скопируйте ID фиксации(полностью)</translation>
</message>
<message>
<source>Edit comment...</source>
<translation type="vanished">コメントを編集...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1242"/>
- <location filename="../../MainWindow.cpp" line="1593"/>
+ <location filename="../../MainWindow.cpp" line="1237"/>
+ <location filename="../../MainWindow.cpp" line="1588"/>
<source>Rebase</source>
<translation>Перебазирование</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1605"/>
+ <location filename="../../MainWindow.cpp" line="1600"/>
<source>Explore</source>
<translation>Обзор</translation>
</message>
<message>
<source>Reset HEAD</source>
<translation type="vanished">Откат HEAD</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="882"/>
+ <location filename="../../MainWindow.cpp" line="877"/>
<source>Message</source>
<translation>Комментарий</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1679"/>
- <location filename="../../MainWindow.cpp" line="1728"/>
- <location filename="../../MainWindow.cpp" line="1854"/>
+ <location filename="../../MainWindow.cpp" line="1674"/>
+ <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1849"/>
<source>History</source>
<translation>История</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>No such commit</source>
<translation>Фиксация не существует</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1143"/>
- <location filename="../../MainWindow.cpp" line="1144"/>
+ <location filename="../../MainWindow.cpp" line="1138"/>
+ <location filename="../../MainWindow.cpp" line="1139"/>
<source>Update</source>
<translation>Обновить</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2762"/>
+ <location filename="../../MainWindow.cpp" line="2757"/>
<source>Authentication Failed</source>
<translation>Авторизация не удалась</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1596"/>
+ <location filename="../../MainWindow.cpp" line="1591"/>
<source>Revert</source>
<translation>Отмена (Revert)</translation>
</message>
<message>
<source>Failed to commit</source>
<translation type="vanished">コミット失敗</translation>
</message>
<message>
<source>No remote repository is registered.</source>
<translation type="vanished">リモートリポジトリが登録されていません。</translation>
</message>
<message>
<source>The current branch %1 has no upstream branch.</source>
<translation type="vanished">現在のブランチ「%1」には上流ブランチがありません。</translation>
</message>
<message>
<source>You try push --set-upstream</source>
<translation type="vanished">--set-upstream を試してください</translation>
</message>
<message>
<source>Connection refused.</source>
<translation type="vanished">接続が拒否されました。</translation>
</message>
<message>
<source>&amp;Property</source>
<translation type="vanished">プロパティ(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1567"/>
+ <location filename="../../MainWindow.cpp" line="1562"/>
<source>Checkout/Branch...</source>
<translation>Проверка/ветвь...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1589"/>
+ <location filename="../../MainWindow.cpp" line="1584"/>
<source>Edit message...</source>
<translation>Правка комментария...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1592"/>
+ <location filename="../../MainWindow.cpp" line="1587"/>
<source>Merge</source>
<translation>Слияние</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1594"/>
+ <location filename="../../MainWindow.cpp" line="1589"/>
<source>Cherry-pick</source>
<translation>Выборочное применение (Cherry-pick)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1678"/>
- <location filename="../../MainWindow.cpp" line="1727"/>
+ <location filename="../../MainWindow.cpp" line="1673"/>
+ <location filename="../../MainWindow.cpp" line="1722"/>
<source>Untrack</source>
<translation>Не отслеживать</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1680"/>
- <location filename="../../MainWindow.cpp" line="1729"/>
- <location filename="../../MainWindow.cpp" line="1855"/>
+ <location filename="../../MainWindow.cpp" line="1675"/>
+ <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1850"/>
<source>Blame</source>
<translation>Обращение</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1688"/>
+ <location filename="../../MainWindow.cpp" line="1683"/>
<source>Delete selected files.</source>
<translation>Удалить выбранные файлы.</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1699"/>
+ <location filename="../../MainWindow.cpp" line="1694"/>
<source>rm --cached files</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1719"/>
<source>Reset</source>
<translation>Откат (Reset)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1725"/>
+ <location filename="../../MainWindow.cpp" line="1720"/>
<source>Ignore</source>
<translation>Игнорировать</translation>
</message>
<message>
<source>Reset a file</source>
<translation type="vanished">ファイルをリセットします</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1239"/>
+ <location filename="../../MainWindow.cpp" line="1234"/>
<source>Are you sure you want to rebase the commit ?</source>
<translation>Вы уверены, что хотите переместить фиксацию?</translation>
</message>
<message>
<source>No repository selected</source>
<translation type="vanished">リポジトリが選択されていません</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1677"/>
- <location filename="../../MainWindow.cpp" line="1726"/>
+ <location filename="../../MainWindow.cpp" line="1672"/>
+ <location filename="../../MainWindow.cpp" line="1721"/>
<source>Delete</source>
<translation>Удалить</translation>
</message>
<message>
<source>Are you sure you want to run the following command ?</source>
<translation type="vanished">次のコマンドを実行してよろしいですか?</translation>
</message>
<message>
<source>Revert all files</source>
<translation type="vanished">すべてのファイルの変更を破棄</translation>
</message>
<message>
<source>Select %1 command</source>
<translation type="vanished">%1 コマンドの選択</translation>
</message>
<message>
<source>A file with same name already exists</source>
<translation type="vanished">同じ名前のファイルが既に存在しています</translation>
</message>
<message>
<source>A folder with same name already exists</source>
<translation type="vanished">同じ名前のフォルダが既に存在しています</translation>
</message>
<message>
<source>Invalid folder</source>
<translation type="vanished">無効なフォルダ</translation>
</message>
<message>
<source>No such folder. Create it now ?</source>
<translation type="vanished">このフォルダはありません。作成しますか?</translation>
</message>
<message>
<source>The URL is a valid repository</source>
<translation type="vanished">このURLは有効なリポジトリです</translation>
</message>
<message>
<source>Failed to access the URL</source>
<translation type="vanished">このURLへのアクセスに失敗しました</translation>
</message>
<message>
<source>Remote Repository</source>
<translation type="vanished">リモートリポジトリ</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>Jump</source>
<translation>Перейти</translation>
</message>
<message>
<source>That commmit has not foud or not read yet</source>
<translation type="vanished">そのコミットは、見つからないか、まだ読み込まれていません</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">ブランチの削除に失敗しました : &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>MergeBranchDialog</name>
<message>
<source>Merge</source>
<translation type="vanished">Слияние</translation>
</message>
<message>
<source>Current branch :</source>
<translation type="vanished">Текущая ветвь :</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">Отмена</translation>
</message>
</context>
<context>
<name>MergeDialog</name>
<message>
<location filename="../../MergeDialog.ui" line="14"/>
<source>Merge</source>
<translation type="unfinished">Слияние</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="20"/>
<source>Fast Forwarding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="26"/>
<source>Default (--ff)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="33"/>
<source>No fast forward (--no-ff)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="40"/>
<source>Fast forward only (--ff-only)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="50"/>
<source>From</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="77"/>
<source>OK</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="84"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MyImageViewWidget</name>
<message>
<location filename="../../MyImageViewWidget.cpp" line="34"/>
<source>Save as...</source>
<translation>Сохранить как...</translation>
</message>
<message>
<location filename="../../MyImageViewWidget.cpp" line="42"/>
<source>Save as</source>
<translation>Сохранить как</translation>
</message>
</context>
<context>
<name>MyTextEditorWidget</name>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="35"/>
<source>Save as...</source>
<translation>Сохранить как...</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="36"/>
<source>Copy</source>
<translation>Копировать</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="43"/>
<source>Save as</source>
<translation>Сохранить как</translation>
</message>
</context>
<context>
<name>ObjectBrowserDialog</name>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="14"/>
<source>Object Browser</source>
<translation>Обозреватель объектов</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="38"/>
<source>Inspect</source>
<translation>Проверка</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="58"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="65"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="23"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="24"/>
<source>Type</source>
<translation>Тип</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="119"/>
<source>Object Inspection</source>
<translation>Проверка объектов</translation>
</message>
</context>
<context>
<name>PushDialog</name>
<message>
<location filename="../../PushDialog.ui" line="14"/>
<source>Push</source>
<translation>Выгрузить</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="20"/>
<source>push --set-upstream</source>
<translation>Выгрузить в источник</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="26"/>
<source>Remote</source>
<translation>Источник</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="33"/>
<source>Branch</source>
<translation>Ветвь</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="64"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="71"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>RebaseOntoDialog</name>
<message>
<source>Branch</source>
<translation type="vanished">ブランチ</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">キャンセル</translation>
</message>
</context>
<context>
<name>ReflogWindow</name>
<message>
<location filename="../../ReflogWindow.ui" line="14"/>
<source>Reflog</source>
<translation></translation>
</message>
<message>
<location filename="../../ReflogWindow.ui" line="57"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="35"/>
<source>Commit</source>
<translation>Фиксация (Commit)</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="36"/>
<source>Head</source>
<translation>Текущая</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="37"/>
<source>Command</source>
<translation>Команда</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="38"/>
<source>Message</source>
<translation>Комментарий</translation>
</message>
<message>
<source>Comment</source>
<translation type="vanished">コメント</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="98"/>
<source>Checkout</source>
<translation>Проверка (Checkout)</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="99"/>
<source>Explorer</source>
<translation>Обзор</translation>
</message>
</context>
+<context>
+ <name>RemoteAdvancedOptionWidget</name>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="32"/>
+ <source>Advanced Option</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="38"/>
+ <source>SSH key override...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="45"/>
+ <source>Clear</source>
+ <translation type="unfinished">Очистить</translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="24"/>
+ <source>SSH command is not registered.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="30"/>
+ <source>SSH key override</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>RemoteRepositoriesTableWidget</name>
<message>
<location filename="../../RemoteRepositoriesTableWidget.cpp" line="27"/>
<source>Copy URL</source>
<translation>Копировать URL</translation>
</message>
</context>
<context>
<name>RepositoryPropertyDialog</name>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="14"/>
<source>Repository Property</source>
<oldsource>Repository Properties</oldsource>
<translation>Свойства репозитория</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="65"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="95"/>
<source>Local dir :</source>
<translation>Локальный каталог:</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="114"/>
<source>Remote URLs</source>
<translation>URL источников</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="124"/>
<source>Remote</source>
<translation>Источник</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="130"/>
<source>Add</source>
<translation>Добавить</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="137"/>
<source>Edit</source>
<translation>Редактировать</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="157"/>
<source>Remove</source>
<translation>Удалить</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="169"/>
<source>&amp;Remote menu</source>
<translation>Меню источника (&amp;R)</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="189"/>
<source>Close</source>
<translation>Закрыть</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Confirm Remove</source>
<translation>Подтвердите удаление</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Are you sure you want to remove the remote &apos;%1&apos; from the repository &apos;%2&apos; ?</source>
<translation>Вы точно хотите удалить источник &apos;%1&apos; из репозитория &apos;%2&apos; ?</translation>
</message>
</context>
<context>
<name>SearchFromGitHubDialog</name>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="14"/>
<source>Search From GitHub</source>
<translation>Поиск на GitHub</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="25"/>
<source>Search</source>
<translation>Поиск</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="78"/>
<source>ssh</source>
<translation></translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="88"/>
<source>http</source>
<translation></translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="115"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="122"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="56"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="57"/>
<source>Owner</source>
<translation>Владелец</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="58"/>
<source>Score</source>
<translation>Популярность</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="59"/>
<source>Description</source>
<translation>Описание</translation>
</message>
</context>
<context>
<name>SelectCommandDialog</name>
<message>
<location filename="../../SelectCommandDialog.ui" line="14"/>
<source>Select git command</source>
<translation>Выбрать команду git</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="32"/>
<source>&amp;Browse...</source>
<translation>&amp;Обзор...</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="52"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="59"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="29"/>
<source>Please select the &apos;%1&apos; command you want to use.</source>
<translation>Выберите &apos;%1&apos; команду, которую вы хотите выполнить.</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="58"/>
<location filename="../../SelectCommandDialog.cpp" line="65"/>
<source>%1 command (%2);;</source>
<translation>%1 команда (%2);;</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="60"/>
<source>Executable files (*.exe)</source>
<translation>Исполняемые файлы (*.exe)</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="71"/>
<source>%1 command</source>
<translation>%1 команда</translation>
</message>
</context>
<context>
<name>SelectGpgKeyDialog</name>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="14"/>
<source>Select GPG Key</source>
<translation>Выбор ключа GPG</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="57"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="64"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="31"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="32"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="33"/>
<source>Mail</source>
<translation></translation>
</message>
</context>
<context>
<name>SelectItemDialog</name>
<message>
<location filename="../../SelectItemDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="25"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="32"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>SetGlobalUserDialog</name>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="14"/>
<source>Global User Setting</source>
<translation>Глобальная настройка пользователя</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="31"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="41"/>
<source>Mail</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="68"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="78"/>
<source>Skip</source>
<translation>Пропустить</translation>
</message>
</context>
<context>
<name>SetGpgSigningDialog</name>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="14"/>
<source>Set GPG Signing</source>
<translation>Настройка подписей GPG</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="26"/>
<source>Global</source>
<translation>Глобально</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="39"/>
<location filename="../../SetGpgSigningDialog.cpp" line="29"/>
<source>Repository</source>
<translation>Репозиторий</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="61"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="71"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="81"/>
<source>Mail</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="93"/>
<source>Select</source>
<translation>Выбрать</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="113"/>
<source>Clear</source>
<translation>Очистить</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="127"/>
<source>Configure...</source>
<translation>Настроить...</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="147"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="154"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>SetRemoteUrlDialog</name>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="14"/>
<source>Set Remote URL</source>
<translation>Установка URL источника</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="20"/>
<source>Current URLs</source>
<translation>Текущий URL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="30"/>
<source>New URL</source>
<translation>Новый URL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="36"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="91"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="98"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="43"/>
<source>URL</source>
<translation></translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="63"/>
<source>&amp;Test</source>
<translation>&amp;Тестировать</translation>
</message>
</context>
<context>
<name>SetUserDialog</name>
<message>
<location filename="../../SetUserDialog.ui" line="14"/>
<source>Set User</source>
<translation>Выбрать пользователя</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="20"/>
<source>Global</source>
<translation>Глобально</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="27"/>
<location filename="../../SetUserDialog.cpp" line="31"/>
<source>Repository</source>
<translation>Репозиторий</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="42"/>
<source>Name</source>
<translation>Имя</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="52"/>
<source>Mail</source>
<translation></translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="66"/>
<source>Get icon from Gravatar</source>
<translation>Получить аватар с Gravatar</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="122"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="132"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>SettingBehaviorForm</name>
<message>
<location filename="../../SettingBehaviorForm.ui" line="14"/>
<source>Behavior</source>
<translation>Поведение</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="20"/>
<location filename="../../SettingBehaviorForm.cpp" line="43"/>
<source>Default working folder</source>
<translation>Рабочий каталог по-умолчанию</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="29"/>
<source>Browse...</source>
<translation>Обзор...</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="39"/>
<source>Automatically fetch when opening the repository</source>
<translation>Автоматически загружать при открытии репозитория</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="46"/>
<source>Get committer&apos;s icon from gravatar.com</source>
<translation>Получить аватар коммитера с gravatar.com</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="61"/>
<source>Maximum number of commit item acquisitions</source>
<translation>Максимальное число загружаемых коммитов</translation>
</message>
<message>
<source>Watch remote changes periodically</source>
<oldsource>Periodically watch remote updates</oldsource>
<translation type="vanished">Отслеживать изменения в источнике</translation>
</message>
<message>
<source>interval</source>
<oldsource>interval in min:</oldsource>
<translation type="vanished">интервал</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="94"/>
<source>GPG signing policy</source>
<oldsource>GPG Signing Policy</oldsource>
<translation>Политика подписания</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="101"/>
<source>Configure...</source>
<translation>Настроить...</translation>
</message>
<message>
<source>Disable</source>
<translation type="vanished">Выключить</translation>
</message>
<message>
<source>1 min</source>
<translation type="vanished">1 минута</translation>
</message>
<message>
<source>%1 mins</source>
<translation type="vanished">%1 минут</translation>
</message>
</context>
<context>
<name>SettingExampleForm</name>
<message>
<location filename="../../SettingExampleForm.ui" line="14"/>
<source>Example</source>
<translation></translation>
</message>
<message>
<location filename="../../SettingExampleForm.ui" line="20"/>
<source>Underconstruction</source>
<translation></translation>
</message>
</context>
<context>
<name>SettingGeneralForm</name>
<message>
<location filename="../../SettingGeneralForm.ui" line="14"/>
<source>General</source>
<translation>Общие</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="20"/>
<source>Language</source>
<translation>Язык</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="31"/>
<source>Change Language...</source>
<translation>Изменить язык...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="54"/>
<source>Change Theme...</source>
<translation>Изменить тему...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="66"/>
<source>Remember and restore window position</source>
<translation>Помнить позицию и размер окна</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="73"/>
<source>Enable high DPI scaling</source>
<translation>Включить highDPI масштабирование</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="43"/>
<source>Theme</source>
<translation>Тема</translation>
</message>
<message>
<source>Japanese</source>
<translation type="vanished">Японский</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="19"/>
<source>Standard</source>
<translation>Стандартная</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="20"/>
<source>Dark</source>
<translation>Тёмная</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="82"/>
<source>Select Language</source>
<translation>Выбор языка</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="106"/>
<source>Select Theme</source>
<translation>Выбор темы</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="93"/>
<source>(Changes are applied at next run)</source>
<translation>(Изменения применятся при следующем запуске)</translation>
</message>
</context>
<context>
<name>SettingNetworkForm</name>
<message>
<location filename="../../SettingNetworkForm.ui" line="14"/>
<source>Network</source>
<translation>Сеть</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="20"/>
<source>Proxy server</source>
<oldsource>Proxy Server</oldsource>
<translation>Прокси-сервер</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="26"/>
<source>No proxy</source>
<oldsource>No Proxy</oldsource>
<translation>Без прокси</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="33"/>
<source>Auto detect</source>
<oldsource>Auto Detect</oldsource>
<translation>Авто-определение</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="40"/>
<source>Manual</source>
<translation>Вручную</translation>
</message>
</context>
<context>
<name>SettingProgramsForm</name>
<message>
<location filename="../../SettingProgramsForm.ui" line="14"/>
<source>Programs</source>
<translation>Программы</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="20"/>
<source>Git command</source>
<translation>путь к git</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="29"/>
<location filename="../../SettingProgramsForm.ui" line="48"/>
<location filename="../../SettingProgramsForm.ui" line="67"/>
+ <location filename="../../SettingProgramsForm.ui" line="86"/>
<source>Browse...</source>
<translation>Обзор...</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="39"/>
<source>File command</source>
<translation>путь к file</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="58"/>
<source>GPG command (option)</source>
<translation>путь к gpg (опционально)</translation>
</message>
+ <message>
+ <location filename="../../SettingProgramsForm.ui" line="77"/>
+ <source>SSH command (option)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../../SettingsDialog.ui" line="14"/>
<source>Settings</source>
<translation>Настройки</translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="141"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="148"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
</context>
<context>
<name>TextEditDialog</name>
<message>
<location filename="../../TextEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="48"/>
<source>OK</source>
<translation></translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="58"/>
<source>Cancel</source>
<translation>Отмена</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>&amp;Close</source>
<translation type="unfinished">&amp;Закрыть</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>Cacnel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WelcomeWizardDialog</name>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="14"/>
<source>Welcome to the Guitar Wizard</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="45"/>
<source>Helper Tools</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="61"/>
<location filename="../../WelcomeWizardDialog.ui" line="338"/>
<source>git</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="71"/>
<location filename="../../WelcomeWizardDialog.ui" line="88"/>
<location filename="../../WelcomeWizardDialog.ui" line="248"/>
<source>Browse</source>
<translation type="unfinished">Обзор</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="78"/>
<location filename="../../WelcomeWizardDialog.ui" line="352"/>
<source>file</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="120"/>
<source>Global User Information</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="142"/>
<source>git config --global user.name</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="152"/>
<source>git config --global user.email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="168"/>
<source>Get icon from Gravatar</source>
<translation type="unfinished">Получить аватар с Gravatar</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="222"/>
<location filename="../../WelcomeWizardDialog.cpp" line="163"/>
<source>Default Working Folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="238"/>
<location filename="../../WelcomeWizardDialog.ui" line="324"/>
<source>folder</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="280"/>
<source>Ready to play the Guitar !</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="296"/>
<source>user</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="310"/>
<source>email</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="426"/>
<location filename="../../WelcomeWizardDialog.cpp" line="155"/>
<source>&lt;&lt; Prev</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="433"/>
<location filename="../../WelcomeWizardDialog.cpp" line="156"/>
<source>Next &gt;&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="126"/>
<source>Cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="152"/>
<source>Finish</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>
diff --git a/src/resources/translations/Guitar_zh-CN.qm b/src/resources/translations/Guitar_zh-CN.qm
index 4b5d2d8..e167ee6 100644
Binary files a/src/resources/translations/Guitar_zh-CN.qm and b/src/resources/translations/Guitar_zh-CN.qm differ
diff --git a/src/resources/translations/Guitar_zh-CN.ts b/src/resources/translations/Guitar_zh-CN.ts
index 79866af..d6d12d7 100644
--- a/src/resources/translations/Guitar_zh-CN.ts
+++ b/src/resources/translations/Guitar_zh-CN.ts
@@ -1,2994 +1,3049 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>AboutDialog</name>
<message>
<location filename="../../AboutDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="34"/>
<location filename="../../AboutDialog.ui" line="46"/>
<location filename="../../AboutDialog.ui" line="58"/>
<location filename="../../AboutDialog.ui" line="70"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="86"/>
<source>&lt;a href=&quot;https://github.com/soramimi/Guitar&quot;&gt;https://github.com/soramimi/Guitar&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../AboutDialog.cpp" line="25"/>
<source>About %1</source>
<translation>%1 关于</translation>
</message>
</context>
<context>
<name>AreYouSureYouWantToContinueConnectingDialog</name>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="14"/>
<source>Unknown Host</source>
<translation>未知主机</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="20"/>
<source>Are you sure you want to continue connecting (yes/no)?</source>
<translation>你想继续连接吗?(是/否)?</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="52"/>
<source>Continue</source>
<translation>继续</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="59"/>
<source>Close</source>
<translation>关闭</translation>
</message>
</context>
<context>
<name>BasicMainWindow</name>
<message>
- <location filename="../../BasicMainWindow.cpp" line="261"/>
+ <location filename="../../BasicMainWindow.cpp" line="243"/>
<source>git command not specified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="374"/>
+ <location filename="../../BasicMainWindow.cpp" line="358"/>
<source>The URL is a valid repository</source>
<translation>此URL是有效的仓库</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="375"/>
+ <location filename="../../BasicMainWindow.cpp" line="359"/>
<source>Failed to access the URL</source>
<translation>无法访问此URL</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="380"/>
+ <location filename="../../BasicMainWindow.cpp" line="364"/>
<source>Remote Repository</source>
<translation>远程仓库</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="405"/>
+ <location filename="../../BasicMainWindow.cpp" line="389"/>
<source>&amp;Property</source>
<translation>属性(&amp;P)</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1273"/>
+ <location filename="../../BasicMainWindow.cpp" line="1272"/>
<source>Select %1 command</source>
<translation>选择 %1 命令</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1452"/>
+ <location filename="../../BasicMainWindow.cpp" line="1447"/>
<source>Revert all files</source>
<translation>放弃所有文件更改</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1610"/>
+ <location filename="../../BasicMainWindow.cpp" line="1605"/>
<source>The folder is not a valid git repository.</source>
<translation>文件夹不是有效的Git仓库。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1614"/>
+ <location filename="../../BasicMainWindow.cpp" line="1609"/>
<source>Do you want to initialize it as a git repository ?</source>
<translation>是否要将其初始化为Git仓库?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1615"/>
+ <location filename="../../BasicMainWindow.cpp" line="1610"/>
<source>Initialize Repository</source>
<translation>初始化仓库</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1745"/>
+ <location filename="../../BasicMainWindow.cpp" line="1740"/>
<source>No repository selected</source>
<translation>未选择仓库</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<source>Repository Property</source>
- <translation>仓库属性</translation>
+ <translation type="vanished">仓库属性</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Not a valid git repository</source>
<translation>不是有效的仓库。</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Open Repository</source>
<translation>打开仓库く</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>No such folder</source>
<translation>没有这样的文件夹</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>Remove from bookmark ?</source>
<translation>是否确实要从书签中删除?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2248"/>
<source>, %1 ahead</source>
<translation></translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2251"/>
<source>, %1 behind</source>
<translation></translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Confirm Remove</source>
<translation>确认删除</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation>是否确实要从书签中删除仓库?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>(Files will NOT be deleted)</source>
<translation>(文件未被删除)</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2302"/>
<source>A file with same name already exists</source>
<translation>同名的文件已存在</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2303"/>
<location filename="../../BasicMainWindow.cpp" line="2308"/>
<location filename="../../BasicMainWindow.cpp" line="2325"/>
<location filename="../../BasicMainWindow.cpp" line="2330"/>
<source>Clone</source>
<translation>克隆</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2307"/>
<source>A folder with same name already exists</source>
<translation>同名的文件夹已存在</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2324"/>
<source>Invalid folder</source>
<translation>无效文件夹</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2329"/>
<source>No such folder. Create it now ?</source>
<translation>此文件夹不存在。是否要创建?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit message can not be omitted.</source>
<translation>提交消息不能为空。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2415"/>
+ <location filename="../../BasicMainWindow.cpp" line="2419"/>
<source>Failed to commit</source>
<translation>提交失败</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2449"/>
- <location filename="../../BasicMainWindow.cpp" line="2533"/>
+ <location filename="../../BasicMainWindow.cpp" line="2453"/>
+ <location filename="../../BasicMainWindow.cpp" line="2538"/>
<source>Connection refused.</source>
<translation>连接被拒绝。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2502"/>
+ <location filename="../../BasicMainWindow.cpp" line="2506"/>
<source>No remote repository is registered.</source>
<translation>远程仓库未注册。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2524"/>
+ <location filename="../../BasicMainWindow.cpp" line="2529"/>
<source>The current branch %1 has no upstream branch.</source>
<translation>目前的分支「%1」没有上游分支。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2527"/>
+ <location filename="../../BasicMainWindow.cpp" line="2532"/>
<source>You try push --set-upstream</source>
<translation>请尝试--set-upstream </translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2616"/>
+ <location filename="../../BasicMainWindow.cpp" line="2621"/>
<source>Failed to delete the branch &apos;%1&apos;</source>
<translation>无法删除分支「%1」</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">无法删除分支: &apos;%1&apos;</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2680"/>
+ <location filename="../../BasicMainWindow.cpp" line="2685"/>
<source>Are you sure you want to run the following command ?</source>
<translation>您确定要运行以下命令吗?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2701"/>
+ <location filename="../../BasicMainWindow.cpp" line="2706"/>
<source>Reset a file</source>
<translation>重置文件</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2715"/>
+ <location filename="../../BasicMainWindow.cpp" line="2720"/>
<source>Unnamed</source>
<translation>未命名</translation>
</message>
</context>
<context>
<name>BasicRepositoryDialog</name>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="66"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="77"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="67"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="78"/>
<source>Purpose</source>
<translation>用途</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="68"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="79"/>
<source>URL</source>
<translation></translation>
</message>
</context>
<context>
<name>BigDiffWindow</name>
<message>
<location filename="../../BigDiffWindow.ui" line="14"/>
<source>Diff</source>
<translation>差异</translation>
</message>
</context>
<context>
<name>BlameWindow</name>
<message>
<location filename="../../BlameWindow.ui" line="14"/>
<source>Blame</source>
<translation>作者及修订版本信息</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="45"/>
<source>Information</source>
<translation>信息</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="60"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="70"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="90"/>
<source>Message</source>
<translation>消息</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="80"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="118"/>
<source>Close</source>
<translation>关闭</translation>
</message>
</context>
<context>
<name>CheckoutDialog</name>
<message>
<location filename="../../CheckoutDialog.ui" line="14"/>
<source>Checkout</source>
<translation>检出</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="20"/>
<location filename="../../CheckoutDialog.ui" line="27"/>
<location filename="../../CheckoutDialog.ui" line="34"/>
<source>RadioButton</source>
<translation></translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="63"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="70"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CherryPickDialog</name>
<message>
<location filename="../../CherryPickDialog.ui" line="14"/>
<source>Cherry-pick</source>
<translation type="unfinished">择优拣选</translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="20"/>
<source>HEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="49"/>
<source>Pick</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="78"/>
<source>Mainline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="109"/>
<source>Allow empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="131"/>
<source>OK</source>
<translation type="unfinished">确定</translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="138"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="19"/>
<source>Commit</source>
<translation type="unfinished">提交</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="20"/>
<source>Date</source>
<translation type="unfinished">日期</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="21"/>
<source>Author</source>
<translation type="unfinished">作者</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="22"/>
<source>Message</source>
<translation type="unfinished">消息</translation>
</message>
</context>
<context>
<name>CloneDialog</name>
<message>
<location filename="../../CloneDialog.ui" line="14"/>
- <location filename="../../CloneDialog.ui" line="103"/>
+ <location filename="../../CloneDialog.ui" line="113"/>
<source>Clone</source>
<translation>克隆</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="22"/>
<source>Remote</source>
<translation>远程</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="39"/>
<source>&amp;Test</source>
<translation>测试(&amp;T)</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="46"/>
<source>Local</source>
<translation>本地</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="56"/>
<source>Browse</source>
<translation>浏览</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="83"/>
+ <location filename="../../CloneDialog.ui" line="93"/>
<source>Open existing local directory...</source>
<translation>打开现有文件夹く...</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="113"/>
+ <location filename="../../CloneDialog.ui" line="123"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="40"/>
+ <location filename="../../CloneDialog.cpp" line="41"/>
<source>Search</source>
<translation>搜索</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="41"/>
+ <location filename="../../CloneDialog.cpp" line="42"/>
<source>GitHub</source>
<translation></translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="113"/>
+ <location filename="../../CloneDialog.cpp" line="115"/>
<source>Checkout into</source>
<translation>检出到</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="125"/>
+ <location filename="../../CloneDialog.cpp" line="127"/>
<source>Open existing directory</source>
<translation>打开现有文件夹</translation>
</message>
</context>
<context>
<name>CloneFromGitHubDialog</name>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="14"/>
<source>Clone from GitHub</source>
<translation>从GitHub克隆</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="45"/>
<source>ssh</source>
<translation>ssh</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="55"/>
<source>http</source>
<translation>http</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="95"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="102"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CommitDialog</name>
<message>
<location filename="../../CommitDialog.ui" line="14"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="27"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="49"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="68"/>
<location filename="../../CommitDialog.ui" line="94"/>
<location filename="../../CommitDialog.ui" line="139"/>
<location filename="../../CommitDialog.ui" line="159"/>
<location filename="../../CommitDialog.ui" line="179"/>
<source>---</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="75"/>
<location filename="../../CommitDialog.ui" line="166"/>
<source>Mail</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="111"/>
<source>GPG Signing</source>
<translation>GPG签名</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="126"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="146"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="189"/>
<source>Configure...</source>
<translation>配置...</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="198"/>
+ <location filename="../../CommitDialog.ui" line="203"/>
<source>Message</source>
<translation>消息</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="223"/>
+ <location filename="../../CommitDialog.ui" line="210"/>
+ <source>Amend</source>
+ <translation>修改</translation>
+ </message>
+ <message>
+ <location filename="../../CommitDialog.ui" line="237"/>
<source>OK</source>
<translation></translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="233"/>
+ <location filename="../../CommitDialog.ui" line="247"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CommitExploreWindow</name>
<message>
<location filename="../../CommitExploreWindow.ui" line="14"/>
<source>Commit Explorer</source>
<translation>提交浏览器</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="65"/>
<source>Commit ID</source>
<translation>提交ID</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="82"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="89"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.cpp" line="78"/>
<source>Commit</source>
<translation>提交</translation>
</message>
</context>
<context>
<name>CommitPropertyDialog</name>
<message>
<location filename="../../CommitPropertyDialog.ui" line="14"/>
<source>Commit Property</source>
<oldsource>Commit Properties</oldsource>
<translation>提交属性</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="46"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="56"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="66"/>
<location filename="../../CommitPropertyDialog.ui" line="196"/>
<source>Mail</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="154"/>
<source>GPG Sign</source>
<translation>GPG签名</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="176"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="186"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="233"/>
<source>Commit ID</source>
<translation>提交ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="243"/>
<source>Parent IDs</source>
<translation>父ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="265"/>
<source>Files...</source>
<translation>文件...</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="285"/>
<source>Explorer</source>
<translation>浏览器</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="305"/>
<source>Checkout</source>
<translation>检出</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="312"/>
<source>Jump</source>
<translation>跳转</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="332"/>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.cpp" line="60"/>
<source>&lt;Unknown&gt;</source>
<translation>&lt;未知的&gt;</translation>
</message>
</context>
<context>
<name>CommitViewWindow</name>
<message>
<location filename="../../CommitViewWindow.ui" line="14"/>
<source>Commit View</source>
<translation>提交视图</translation>
</message>
<message>
<location filename="../../CommitViewWindow.cpp" line="58"/>
<source>History</source>
<translation>历史</translation>
</message>
</context>
<context>
<name>ConfigCredentialHelperDialog</name>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="26"/>
<source>wincred</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="39"/>
<source>winstore</source>
<translation></translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="52"/>
<source>None</source>
<translation>无</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="65"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="78"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="91"/>
<source>Other</source>
<translation>其他</translation>
</message>
</context>
<context>
<name>ConfigSigningDialog</name>
<message>
<location filename="../../ConfigSigningDialog.ui" line="14"/>
<source>Signing Policy</source>
<translation>签名策略</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="20"/>
<source>Config commit.gpgsign</source>
<translation>配置commit.gpgsign</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="32"/>
<source>global</source>
<translation>全局</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="42"/>
<source>local</source>
<translation>局部</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="70"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="77"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CreateRepositoryDialog</name>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="14"/>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="46"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Create Repository</source>
<translation>创建仓库</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="22"/>
<source>Path</source>
<translation>路径</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="32"/>
<source>Browse</source>
<translation>浏览</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="54"/>
<source>Bookmark</source>
<translation>书签</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="63"/>
<location filename="../../CreateRepositoryDialog.ui" line="88"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="76"/>
<source>Remote</source>
<translation>远程</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="98"/>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="108"/>
<source>Test</source>
<translation>测试</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="146"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="153"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="19"/>
<source>A valid git repository already exists there.</source>
<translation>已存在有效的仓库。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<source>The specified path is not a directory.</source>
<translation>指定的路径不是文件夹。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Remote name is invalid.</source>
<translation>远程名称无效。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="62"/>
<source>Destination Path</source>
<translation>目标路径</translation>
</message>
</context>
<context>
<name>DeleteBranchDialog</name>
<message>
<location filename="../../DeleteBranchDialog.ui" line="14"/>
<source>Delete Branch</source>
<translation>删除分支</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="25"/>
<source>&amp;All branches</source>
<translation>所有分支(&amp;A)</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="45"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="52"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.cpp" line="23"/>
<source>Delete Remote Branch</source>
<translation>删除远程分支</translation>
</message>
</context>
<context>
<name>DeleteTagsDialog</name>
<message>
<location filename="../../DeleteTagsDialog.ui" line="14"/>
<source>Delete tags</source>
<translation>删除标签</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="32"/>
<source>Check all</source>
<translation>检查所有</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="52"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="62"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>DoYouWantToInitDialog</name>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="14"/>
<source>Init Repository</source>
<translation>初始化仓库</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="20"/>
<source>The folder:</source>
<translation>文件夹:</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="32"/>
<source>is not a valid git working copy.</source>
<translation>不是有效的Git仓库。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="39"/>
<source>Do you want to init it as a git repository ?</source>
<translation>您想将其初始化为Git仓库吗?</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="81"/>
<source>Yes, Please init it.</source>
<translation>是,请初始化。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="88"/>
<source>No, Stop it.</source>
<translation>否,不要初始化。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="140"/>
<source>Please choose option</source>
<translation>请选择</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="20"/>
<source>Next...</source>
<translation>下一步...</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="26"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>EditGitIgnoreDialog</name>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="14"/>
<source>Edit Git Ignore</source>
<translation>编辑Git忽略的文件</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="20"/>
<location filename="../../EditGitIgnoreDialog.ui" line="27"/>
<location filename="../../EditGitIgnoreDialog.ui" line="34"/>
<location filename="../../EditGitIgnoreDialog.ui" line="41"/>
<source>RadioButton</source>
<translation></translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="63"/>
<source>Edit the file</source>
<translation>编辑文件</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="83"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="90"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>EditRemoteDialog</name>
<message>
<location filename="../../EditRemoteDialog.ui" line="14"/>
<source>Edit Remote</source>
<translation>远程编辑</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="20"/>
<source>Remote</source>
<translation>远程</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="26"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="33"/>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="53"/>
<source>&amp;Test</source>
<translation>测试(&amp;T)</translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="81"/>
+ <location filename="../../EditRemoteDialog.ui" line="104"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="88"/>
+ <location filename="../../EditRemoteDialog.ui" line="111"/>
<source>Close</source>
<translation>关闭</translation>
</message>
</context>
<context>
<name>EditTagsDialog</name>
<message>
<location filename="../../EditTagsDialog.ui" line="14"/>
<source>Edit Tags</source>
<translation>编辑标签</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="41"/>
<source>Add...</source>
<translation>添加...</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="48"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="68"/>
<source>Close</source>
<translation>关闭</translation>
</message>
</context>
<context>
<name>ExperimentDialog</name>
<message>
<location filename="../../ExperimentDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
</context>
<context>
<name>FileDiffWidget</name>
<message>
<location filename="../../FileDiffWidget.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
</context>
<context>
<name>FileHistoryWindow</name>
<message>
<location filename="../../FileHistoryWindow.ui" line="14"/>
<source>File History</source>
<translation>文件历史</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.ui" line="20"/>
<location filename="../../FileHistoryWindow.ui" line="27"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="111"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="112"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="113"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="114"/>
<source>Message</source>
<translation>消息</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">描述</translation>
</message>
</context>
<context>
<name>FilePropertyDialog</name>
<message>
<location filename="../../FilePropertyDialog.ui" line="14"/>
<source>File Property</source>
<oldsource>File Properties</oldsource>
<translation>文件属性</translation>
</message>
<message>
<location filename="../../FilePropertyDialog.ui" line="78"/>
<source>&amp;Close</source>
<translation>关闭(&amp;C)</translation>
</message>
</context>
+<context>
+ <name>FileViewWidget</name>
+ <message>
+ <location filename="../../FileViewWidget.cpp" line="30"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>FindCommitDialog</name>
<message>
<location filename="../../FindCommitDialog.ui" line="14"/>
<source>Find Commit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="54"/>
<source>OK</source>
<translation type="unfinished">确定</translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="61"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
</context>
<context>
<name>InputNewTagDialog</name>
<message>
<location filename="../../InputNewTagDialog.ui" line="14"/>
<source>Edit tag</source>
<translation>编辑标签</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="31"/>
<source>Tag</source>
<translation>标签</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="58"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="65"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>JumpDialog</name>
<message>
<location filename="../../JumpDialog.ui" line="14"/>
<source>Jump</source>
<translation>跳转</translation>
</message>
<message>
<source>Branches and Tags</source>
<translation type="vanished">分支和标签</translation>
</message>
<message>
<source>&amp;Filter</source>
<translation type="vanished">过滤器(&amp;F)</translation>
</message>
<message>
<source>Find</source>
<translation type="vanished">查找</translation>
</message>
<message>
<source>&amp;Checkout</source>
<translation type="vanished">检出(&amp;C)</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="20"/>
<source>Branch, Tag or Commit-ID :</source>
<translation>分支,标签,提交ID</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="71"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="81"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../JumpDialog.cpp" line="39"/>
<source>Name</source>
<translation>名称</translation>
</message>
</context>
<context>
<name>Languages</name>
<message>
<location filename="../../Languages.cpp" line="6"/>
<source>English</source>
<translation type="unfinished">英语</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="7"/>
<source>Japanese</source>
<translation type="unfinished">日语</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="8"/>
<source>Russian</source>
<translation type="unfinished">俄语</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="9"/>
<source>Chinese (Simplified)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../Languages.cpp" line="10"/>
<source>Chinese (Traditional/Taiwan)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LineEditDialog</name>
<message>
<location filename="../../LineEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation>行编辑</translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="45"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="52"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../MainWindow.ui" line="14"/>
<source>Guitar</source>
<translation>Guitar</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="96"/>
- <location filename="../../MainWindow.ui" line="1421"/>
- <location filename="../../MainWindow.ui" line="1424"/>
+ <location filename="../../MainWindow.ui" line="1416"/>
+ <location filename="../../MainWindow.ui" line="1419"/>
<source>Clone</source>
<translation>克隆</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="131"/>
- <location filename="../../MainWindow.cpp" line="1140"/>
- <location filename="../../MainWindow.cpp" line="1141"/>
+ <location filename="../../MainWindow.cpp" line="1135"/>
+ <location filename="../../MainWindow.cpp" line="1136"/>
<source>Fetch</source>
<translation>取出</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="166"/>
<source>Pull</source>
<translation>拉取</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="201"/>
<source>Push</source>
<translation>推送</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="303"/>
- <location filename="../../MainWindow.ui" line="1548"/>
+ <location filename="../../MainWindow.ui" line="1543"/>
<source>Terminal</source>
<translation>终端</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="338"/>
- <location filename="../../MainWindow.ui" line="1557"/>
+ <location filename="../../MainWindow.ui" line="1552"/>
<source>Explorer</source>
<translation>资源管理器</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="424"/>
<source>Repository</source>
<translation>仓库</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="431"/>
<source>Branch Name</source>
<translation>分支名称</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="483"/>
- <location filename="../../MainWindow.ui" line="1592"/>
+ <location filename="../../MainWindow.ui" line="1587"/>
<source>Offline</source>
<translation>离线</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="473"/>
- <location filename="../../MainWindow.ui" line="1587"/>
+ <location filename="../../MainWindow.ui" line="1582"/>
<source>Online</source>
<translation>在线</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="799"/>
- <location filename="../../MainWindow.cpp" line="1853"/>
+ <location filename="../../MainWindow.cpp" line="1848"/>
<source>Unstage</source>
<translation>unstage</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="828"/>
<source>Select all</source>
<translation>全选</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="863"/>
- <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1718"/>
<source>Stage</source>
<translation>stage</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="892"/>
- <location filename="../../MainWindow.cpp" line="879"/>
+ <location filename="../../MainWindow.cpp" line="874"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1023"/>
<source>&amp;File</source>
<translation>文件(&amp;F)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1034"/>
<source>&amp;View</source>
<translation>表示(&amp;V)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1040"/>
+ <location filename="../../MainWindow.ui" line="1041"/>
<source>&amp;Edit</source>
<translation>编辑(&amp;E)</translation>
</message>
<message>
<source>Destructive</source>
<translation type="vanished">需要注意的命令</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1412"/>
+ <location filename="../../MainWindow.ui" line="1407"/>
<source>Settings</source>
<translation>设置</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1434"/>
- <location filename="../../MainWindow.cpp" line="1595"/>
+ <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.cpp" line="1590"/>
<source>Edit tags...</source>
<translation>编辑标签...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1437"/>
+ <location filename="../../MainWindow.ui" line="1432"/>
<source>Edit tags</source>
<translation>编辑标签</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1562"/>
+ <location filename="../../MainWindow.ui" line="1557"/>
<source>Clean -df</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1567"/>
+ <location filename="../../MainWindow.ui" line="1562"/>
<source>Reset --hard</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1494"/>
+ <location filename="../../MainWindow.ui" line="1489"/>
<source>Create a repository</source>
<translation>创建仓库</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1476"/>
<source>Push upstream</source>
<translation>推送到上游</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1503"/>
+ <location filename="../../MainWindow.ui" line="1498"/>
<source>Stop process</source>
<translation>停止处理</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1508"/>
+ <location filename="../../MainWindow.ui" line="1503"/>
<source>E&amp;xit</source>
<translation>退出(&amp;X)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1511"/>
+ <location filename="../../MainWindow.ui" line="1506"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1516"/>
+ <location filename="../../MainWindow.ui" line="1511"/>
<source>Reflog...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1516"/>
<source>Property...</source>
<translation>属性...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1526"/>
- <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1524"/>
<source>Set GPG signing</source>
<translation>设置GPG签名</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1539"/>
+ <location filename="../../MainWindow.ui" line="1534"/>
<source>Fetch --prune</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1055"/>
+ <location filename="../../MainWindow.ui" line="1056"/>
<source>&amp;Help</source>
<translation>帮助(&amp;H)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="252"/>
- <location filename="../../MainWindow.ui" line="1628"/>
- <location filename="../../MainWindow.cpp" line="1353"/>
+ <location filename="../../MainWindow.ui" line="1623"/>
+ <location filename="../../MainWindow.cpp" line="1348"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="656"/>
<source>...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1061"/>
+ <location filename="../../MainWindow.ui" line="1062"/>
<source>&amp;Window</source>
<translation>窗口(&amp;W)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1067"/>
+ <location filename="../../MainWindow.ui" line="1073"/>
<source>&amp;Repository</source>
<translation>仓库(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1071"/>
- <location filename="../../MainWindow.ui" line="1572"/>
+ <location filename="../../MainWindow.ui" line="1077"/>
+ <location filename="../../MainWindow.ui" line="1567"/>
<source>Stash</source>
<translation>贮存</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1098"/>
+ <location filename="../../MainWindow.ui" line="1104"/>
<source>Re&amp;mote</source>
<translation>远程(&amp;M)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1113"/>
+ <location filename="../../MainWindow.ui" line="1119"/>
<source>&amp;Destructive</source>
<translation>注意(&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1125"/>
- <source>Experimental</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../MainWindow.ui" line="1155"/>
+ <location filename="../../MainWindow.ui" line="1150"/>
<source>Log</source>
<translation>日志</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1325"/>
+ <location filename="../../MainWindow.ui" line="1320"/>
<source>&amp;Open existing working copy...</source>
<translation>打开现有工作副本(&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1328"/>
- <location filename="../../MainWindow.cpp" line="2027"/>
+ <location filename="../../MainWindow.ui" line="1323"/>
+ <location filename="../../MainWindow.cpp" line="2022"/>
<source>Add existing working copy</source>
<translation>添加现有工作副本</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1333"/>
- <location filename="../../MainWindow.ui" line="1336"/>
+ <location filename="../../MainWindow.ui" line="1328"/>
+ <location filename="../../MainWindow.ui" line="1331"/>
<source>Refresh</source>
<translation>刷新</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1339"/>
+ <location filename="../../MainWindow.ui" line="1334"/>
<source>F5</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1348"/>
+ <location filename="../../MainWindow.ui" line="1343"/>
<source>&amp;Commit</source>
<translation>提交(&amp;C)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1357"/>
+ <location filename="../../MainWindow.ui" line="1352"/>
<source>&amp;Push</source>
<translation>推送(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1365"/>
+ <location filename="../../MainWindow.ui" line="1360"/>
<source>test</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1368"/>
+ <location filename="../../MainWindow.ui" line="1363"/>
<source>Ctrl+T</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1377"/>
+ <location filename="../../MainWindow.ui" line="1372"/>
<source>Pu&amp;ll</source>
<translation>拉取(&amp;L)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1381"/>
<source>&amp;Fetch</source>
<translation>取出(&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1391"/>
- <location filename="../../MainWindow.ui" line="1394"/>
+ <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1389"/>
<source>Edit global .gitconfig</source>
<translation>编辑全局.gitignore</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1399"/>
+ <location filename="../../MainWindow.ui" line="1394"/>
<source>Edit .git/config</source>
<translation>编辑.git/config</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1404"/>
+ <location filename="../../MainWindow.ui" line="1399"/>
<source>Edit .gitignore</source>
<translation>编辑.gitignore</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1409"/>
+ <location filename="../../MainWindow.ui" line="1404"/>
<source>&amp;Settings...</source>
<translation>设置(&amp;S)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1458"/>
+ <location filename="../../MainWindow.ui" line="1453"/>
<source>F4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1463"/>
+ <location filename="../../MainWindow.ui" line="1458"/>
<source>&amp;Jump...</source>
<translation>跳转(&amp;J)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1466"/>
+ <location filename="../../MainWindow.ui" line="1461"/>
<source>Ctrl+J</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.ui" line="1466"/>
<source>Check&amp;out...</source>
<translation>检出(&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1476"/>
- <location filename="../../MainWindow.cpp" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.cpp" line="1595"/>
<source>Delete branch...</source>
<translation>删除分支...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1577"/>
+ <location filename="../../MainWindow.ui" line="1572"/>
<source>Apply</source>
<translation>应用</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1582"/>
+ <location filename="../../MainWindow.ui" line="1577"/>
<source>Drop</source>
<translation>丢弃</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1595"/>
<source>Repositories panel</source>
<translation>仓库面板</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1603"/>
+ <location filename="../../MainWindow.ui" line="1598"/>
<source>Ctrl+R</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1608"/>
+ <location filename="../../MainWindow.ui" line="1603"/>
<source>&amp;Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1611"/>
+ <location filename="../../MainWindow.ui" line="1606"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1616"/>
+ <location filename="../../MainWindow.ui" line="1611"/>
<source>Find next</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1619"/>
+ <location filename="../../MainWindow.ui" line="1614"/>
<source>F3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1633"/>
+ <location filename="../../MainWindow.ui" line="1628"/>
<source>Jump to &amp;HEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1636"/>
+ <location filename="../../MainWindow.ui" line="1631"/>
<source>Ctrl+H</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1641"/>
+ <location filename="../../MainWindow.ui" line="1636"/>
<source>Merge...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1646"/>
+ <location filename="../../MainWindow.ui" line="1641"/>
<source>Expand commit log</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1649"/>
+ <location filename="../../MainWindow.ui" line="1644"/>
<source>Ctrl+2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1654"/>
+ <location filename="../../MainWindow.ui" line="1649"/>
<source>Expand file list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1657"/>
+ <location filename="../../MainWindow.ui" line="1652"/>
<source>Ctrl+3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1662"/>
+ <location filename="../../MainWindow.ui" line="1657"/>
<source>Expand diff view</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1665"/>
+ <location filename="../../MainWindow.ui" line="1660"/>
<source>Ctrl+4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1670"/>
+ <location filename="../../MainWindow.ui" line="1668"/>
<source>Sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1673"/>
- <source>F1</source>
+ <location filename="../../MainWindow.ui" line="1671"/>
+ <source>Ctrl+1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1678"/>
+ <location filename="../../MainWindow.ui" line="1687"/>
+ <source>Show labels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1690"/>
+ <source>Ctrl+L</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1676"/>
<source>Wide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1681"/>
+ <location filename="../../MainWindow.ui" line="1679"/>
<source>F2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1486"/>
- <location filename="../../MainWindow.ui" line="1489"/>
+ <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1484"/>
<source>Reset HEAD~1</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1534"/>
- <location filename="../../MainWindow.cpp" line="1601"/>
+ <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.cpp" line="1596"/>
<source>Delete remote branch...</source>
<translation>删除远程分支...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.ui" line="1424"/>
<source>&amp;About</source>
<translation>关于Guitar(&amp;A)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1442"/>
+ <location filename="../../MainWindow.ui" line="1437"/>
<source>Push all tags</source>
<translation>推送所有标签</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1447"/>
+ <location filename="../../MainWindow.ui" line="1442"/>
<source>Set config user</source>
<translation>设置用户信息</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1455"/>
+ <location filename="../../MainWindow.ui" line="1450"/>
<source>&amp;Log</source>
<translation>日志(&amp;L)</translation>
</message>
<message>
<source>Unnamed</source>
<translation type="vanished">未命名</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="679"/>
+ <location filename="../../MainWindow.cpp" line="674"/>
<source>Default</source>
<translation>缺省</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="878"/>
+ <location filename="../../MainWindow.cpp" line="873"/>
<source>Graph</source>
<translation>树形图</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="880"/>
+ <location filename="../../MainWindow.cpp" line="875"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="881"/>
+ <location filename="../../MainWindow.cpp" line="876"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">描述</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1029"/>
- <location filename="../../MainWindow.cpp" line="1199"/>
+ <location filename="../../MainWindow.cpp" line="1024"/>
+ <location filename="../../MainWindow.cpp" line="1194"/>
<source>Uncommited changes</source>
<translation>未提交的更改</translation>
</message>
<message>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation type="vanished">确定要从书签中删除仓库吗?</translation>
</message>
<message>
<source>(Files will NOT be deleted)</source>
<translation type="vanished">(该文件未被删除。)</translation>
</message>
<message>
<source>Open Repository</source>
<translation type="vanished">打开仓库く</translation>
</message>
<message>
<source>No such folder</source>
<translation type="vanished">没有这样的文件夹。</translation>
</message>
<message>
<source>Not a valid git repository</source>
<translation type="vanished">不是有效的仓库</translation>
</message>
<message>
<source>Commit message can not be omitted.</source>
<translation type="vanished">提交消息不能为空。</translation>
</message>
<message>
<source>Repository Property</source>
<translation type="vanished">仓库属性</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1457"/>
+ <location filename="../../MainWindow.cpp" line="1452"/>
<source>&amp;Add new group</source>
<translation>添加新组(&amp;A)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1458"/>
+ <location filename="../../MainWindow.cpp" line="1453"/>
<source>&amp;Delete group</source>
<translation>删除组(&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1459"/>
+ <location filename="../../MainWindow.cpp" line="1454"/>
<source>&amp;Rename group</source>
<translation>重命名组(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1464"/>
+ <location filename="../../MainWindow.cpp" line="1459"/>
<source>New group</source>
<translation>新建组</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1488"/>
+ <location filename="../../MainWindow.cpp" line="1483"/>
<source>Open &amp;terminal</source>
<translation>打开终端(&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1489"/>
+ <location filename="../../MainWindow.cpp" line="1484"/>
<source>Open command promp&amp;t</source>
<translation>打开命令提示符(&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1491"/>
+ <location filename="../../MainWindow.cpp" line="1486"/>
<source>&amp;Open</source>
<translation>打开く(&amp;O)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1502"/>
+ <location filename="../../MainWindow.cpp" line="1497"/>
<source>Open &amp;folder</source>
<translation>打开文件夹(&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1507"/>
+ <location filename="../../MainWindow.cpp" line="1502"/>
<source>&amp;Remove</source>
<translation>删除(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1550"/>
+ <location filename="../../MainWindow.cpp" line="1545"/>
<source>Copy commit id (7 letters)</source>
<translation>复制提交ID(7个字母)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1551"/>
+ <location filename="../../MainWindow.cpp" line="1546"/>
<source>Copy commit id (completely)</source>
<translation>复制提交ID(全部)</translation>
</message>
<message>
<source>Edit comment...</source>
<translation type="vanished">编辑注释...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1242"/>
- <location filename="../../MainWindow.cpp" line="1593"/>
+ <location filename="../../MainWindow.cpp" line="1237"/>
+ <location filename="../../MainWindow.cpp" line="1588"/>
<source>Rebase</source>
<translation>重新设置基线</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1605"/>
+ <location filename="../../MainWindow.cpp" line="1600"/>
<source>Explore</source>
<translation>浏览</translation>
</message>
<message>
<source>Reset HEAD</source>
<translation type="vanished">重置HEAD</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="882"/>
+ <location filename="../../MainWindow.cpp" line="877"/>
<source>Message</source>
<translation>消息</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1679"/>
- <location filename="../../MainWindow.cpp" line="1728"/>
- <location filename="../../MainWindow.cpp" line="1854"/>
+ <location filename="../../MainWindow.cpp" line="1674"/>
+ <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1849"/>
<source>History</source>
<translation>历史</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>No such commit</source>
<translation>没有这样的提交</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1143"/>
- <location filename="../../MainWindow.cpp" line="1144"/>
+ <location filename="../../MainWindow.cpp" line="1138"/>
+ <location filename="../../MainWindow.cpp" line="1139"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2762"/>
+ <location filename="../../MainWindow.cpp" line="2757"/>
<source>Authentication Failed</source>
<translation>认证失败</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1596"/>
+ <location filename="../../MainWindow.cpp" line="1591"/>
<source>Revert</source>
<translation>放弃更改</translation>
</message>
<message>
<source>Failed to commit</source>
<translation type="vanished">提交失败</translation>
</message>
<message>
<source>No remote repository is registered.</source>
<translation type="vanished">远程仓库未注册。</translation>
</message>
<message>
<source>The current branch %1 has no upstream branch.</source>
<translation type="vanished">目前的分支「%1」没有上游分支。</translation>
</message>
<message>
<source>You try push --set-upstream</source>
<translation type="vanished">请尝试--set-upstream</translation>
</message>
<message>
<source>Connection refused.</source>
<translation type="vanished">连接被拒绝。</translation>
</message>
<message>
<source>&amp;Property</source>
<translation type="vanished">属性(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1567"/>
+ <location filename="../../MainWindow.cpp" line="1562"/>
<source>Checkout/Branch...</source>
<translation>检出/分支...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1589"/>
+ <location filename="../../MainWindow.cpp" line="1584"/>
<source>Edit message...</source>
<translation>编辑消息...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1592"/>
+ <location filename="../../MainWindow.cpp" line="1587"/>
<source>Merge</source>
<translation>合并</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1594"/>
+ <location filename="../../MainWindow.cpp" line="1589"/>
<source>Cherry-pick</source>
<translation>择优拣选</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1678"/>
- <location filename="../../MainWindow.cpp" line="1727"/>
+ <location filename="../../MainWindow.cpp" line="1673"/>
+ <location filename="../../MainWindow.cpp" line="1722"/>
<source>Untrack</source>
<translation>不跟踪</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1680"/>
- <location filename="../../MainWindow.cpp" line="1729"/>
- <location filename="../../MainWindow.cpp" line="1855"/>
+ <location filename="../../MainWindow.cpp" line="1675"/>
+ <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1850"/>
<source>Blame</source>
<translation>作者及版本修订信息</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1688"/>
+ <location filename="../../MainWindow.cpp" line="1683"/>
<source>Delete selected files.</source>
<translation>删除所选文件。</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1699"/>
+ <location filename="../../MainWindow.cpp" line="1694"/>
<source>rm --cached files</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1719"/>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1725"/>
+ <location filename="../../MainWindow.cpp" line="1720"/>
<source>Ignore</source>
<translation>忽略</translation>
</message>
<message>
<source>Reset a file</source>
<translation type="vanished">重置文件</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1239"/>
+ <location filename="../../MainWindow.cpp" line="1234"/>
<source>Are you sure you want to rebase the commit ?</source>
<translation>是否确实要将该提交重新设置为基线?</translation>
</message>
<message>
<source>No repository selected</source>
<translation type="vanished">没有选择仓库</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1677"/>
- <location filename="../../MainWindow.cpp" line="1726"/>
+ <location filename="../../MainWindow.cpp" line="1672"/>
+ <location filename="../../MainWindow.cpp" line="1721"/>
<source>Delete</source>
<translation>删除</translation>
</message>
<message>
<source>Are you sure you want to run the following command ?</source>
<translation type="vanished">确定要运行以下命令吗??</translation>
</message>
<message>
<source>Revert all files</source>
<translation type="vanished">放弃所有文件更改</translation>
</message>
<message>
<source>Select %1 command</source>
<translation type="vanished">选择「%1」命令</translation>
</message>
<message>
<source>A file with same name already exists</source>
<translation type="vanished">同名的文件已存在</translation>
</message>
<message>
<source>A folder with same name already exists</source>
<translation type="vanished">同名的文件夹已存在</translation>
</message>
<message>
<source>Invalid folder</source>
<translation type="vanished">文件夹无效</translation>
</message>
<message>
<source>No such folder. Create it now ?</source>
<translation type="vanished">此文件夹不存在。是否要创建?</translation>
</message>
<message>
<source>The URL is a valid repository</source>
<translation type="vanished">此URL是有效的仓库</translation>
</message>
<message>
<source>Failed to access the URL</source>
<translation type="vanished">无法访问此URL</translation>
</message>
<message>
<source>Remote Repository</source>
<translation type="vanished">远程仓库</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>Jump</source>
<translation>跳转</translation>
</message>
<message>
<source>That commmit has not foud or not read yet</source>
<translation type="vanished">未找到或尚未读取到提交</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">无法删除分支 : &apos;%1&apos;</translation>
</message>
</context>
<context>
<name>MergeBranchDialog</name>
<message>
<source>Merge</source>
<translation type="vanished">合并</translation>
</message>
<message>
<source>Current branch :</source>
<translation type="vanished">目前的分支 :</translation>
</message>
<message>
<source>OK</source>
<translation type="vanished">确定</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">取消</translation>
</message>
</context>
<context>
<name>MergeDialog</name>
<message>
<location filename="../../MergeDialog.ui" line="14"/>
<source>Merge</source>
<translation type="unfinished">合并</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="20"/>
<source>Fast Forwarding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="26"/>
<source>Default (--ff)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="33"/>
<source>No fast forward (--no-ff)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="40"/>
<source>Fast forward only (--ff-only)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="50"/>
<source>From</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="77"/>
<source>OK</source>
<translation type="unfinished">确定</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="84"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
</context>
<context>
<name>MyImageViewWidget</name>
<message>
<location filename="../../MyImageViewWidget.cpp" line="34"/>
<source>Save as...</source>
<translation>另存为...</translation>
</message>
<message>
<location filename="../../MyImageViewWidget.cpp" line="42"/>
<source>Save as</source>
<translation>另存为</translation>
</message>
</context>
<context>
<name>MyTextEditorWidget</name>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="35"/>
<source>Save as...</source>
<translation>另存为...</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="36"/>
<source>Copy</source>
<translation>复制</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="43"/>
<source>Save as</source>
<translation>另存为</translation>
</message>
</context>
<context>
<name>ObjectBrowserDialog</name>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="14"/>
<source>Object Browser</source>
<translation>对象浏览器</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="38"/>
<source>Inspect</source>
<translation>检查</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="58"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="65"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="23"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="24"/>
<source>Type</source>
<translation>类型</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="119"/>
<source>Object Inspection</source>
<translation>对象检查</translation>
</message>
</context>
<context>
<name>PushDialog</name>
<message>
<location filename="../../PushDialog.ui" line="14"/>
<source>Push</source>
<translation>推送</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="20"/>
<source>push --set-upstream</source>
<translation>push --set-upstream</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="26"/>
<source>Remote</source>
<translation>远程</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="33"/>
<source>Branch</source>
<translation>分支</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="64"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="71"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>RebaseOntoDialog</name>
<message>
<source>Branch</source>
<translation type="vanished">分支</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">取消</translation>
</message>
</context>
<context>
<name>ReflogWindow</name>
<message>
<location filename="../../ReflogWindow.ui" line="14"/>
<source>Reflog</source>
<translation>参考日志</translation>
</message>
<message>
<location filename="../../ReflogWindow.ui" line="57"/>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="35"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="36"/>
<source>Head</source>
<translation></translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="37"/>
<source>Command</source>
<translation>命令</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="38"/>
<source>Message</source>
<translation>消息</translation>
</message>
<message>
<source>Comment</source>
<translation type="vanished">注释</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="98"/>
<source>Checkout</source>
<translation>检出</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="99"/>
<source>Explorer</source>
<translation>浏览器</translation>
</message>
</context>
+<context>
+ <name>RemoteAdvancedOptionWidget</name>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="32"/>
+ <source>Advanced Option</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="38"/>
+ <source>SSH key override...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="45"/>
+ <source>Clear</source>
+ <translation type="unfinished">清除</translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="24"/>
+ <source>SSH command is not registered.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="30"/>
+ <source>SSH key override</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>RemoteRepositoriesTableWidget</name>
<message>
<location filename="../../RemoteRepositoriesTableWidget.cpp" line="27"/>
<source>Copy URL</source>
<translation>复制URL</translation>
</message>
</context>
<context>
<name>RepositoryPropertyDialog</name>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="14"/>
<source>Repository Property</source>
<oldsource>Repository Properties</oldsource>
<translation>仓库属性</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="65"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="95"/>
<source>Local dir :</source>
<translation>本地目录 :</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="114"/>
<source>Remote URLs</source>
<translation>远程URL</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="124"/>
<source>Remote</source>
<translation>远程</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="130"/>
<source>Add</source>
<translation>添加</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="137"/>
<source>Edit</source>
<translation>编辑</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="157"/>
<source>Remove</source>
<translation>删除</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="169"/>
<source>&amp;Remote menu</source>
<translation>远程菜单(&amp;R)</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="189"/>
<source>Close</source>
<translation>关闭</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Confirm Remove</source>
<translation>确认删除</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Are you sure you want to remove the remote &apos;%1&apos; from the repository &apos;%2&apos; ?</source>
<translation>确定要从仓库「%2」中删除远程「%1」吗?</translation>
</message>
</context>
<context>
<name>SearchFromGitHubDialog</name>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="14"/>
<source>Search From GitHub</source>
<translation>从GitHub搜索</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="25"/>
<source>Search</source>
<translation>搜索</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="78"/>
<source>ssh</source>
<translation>ssh</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="88"/>
<source>http</source>
<translation>http</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="115"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="122"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="56"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="57"/>
<source>Owner</source>
<translation>所有者</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="58"/>
<source>Score</source>
<translation>范围</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="59"/>
<source>Description</source>
<translation>描述</translation>
</message>
</context>
<context>
<name>SelectCommandDialog</name>
<message>
<location filename="../../SelectCommandDialog.ui" line="14"/>
<source>Select git command</source>
<translation>选择git命令</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="32"/>
<source>&amp;Browse...</source>
<translation>浏览(&amp;B)...</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="52"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="59"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="29"/>
<source>Please select the &apos;%1&apos; command you want to use.</source>
<translation>请选择想用的&apos;%1&apos; 命令。</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="58"/>
<location filename="../../SelectCommandDialog.cpp" line="65"/>
<source>%1 command (%2);;</source>
<translation>%1 命令 (%2);;</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="60"/>
<source>Executable files (*.exe)</source>
<translation>可执行文件 (*.exe)</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="71"/>
<source>%1 command</source>
<translation>%1 命令</translation>
</message>
</context>
<context>
<name>SelectGpgKeyDialog</name>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="14"/>
<source>Select GPG Key</source>
<translation>选择GPG密钥</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="57"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="64"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="31"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="32"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="33"/>
<source>Mail</source>
<translation>电子邮件</translation>
</message>
</context>
<context>
<name>SelectItemDialog</name>
<message>
<location filename="../../SelectItemDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="25"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="32"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>SetGlobalUserDialog</name>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="14"/>
<source>Global User Setting</source>
<translation>全局用户设置</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="31"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="41"/>
<source>Mail</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="68"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="78"/>
<source>Skip</source>
<translation>跳过</translation>
</message>
</context>
<context>
<name>SetGpgSigningDialog</name>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="14"/>
<source>Set GPG Signing</source>
<translation>设置GPG签名</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="26"/>
<source>Global</source>
<translation>全局</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="39"/>
<location filename="../../SetGpgSigningDialog.cpp" line="29"/>
<source>Repository</source>
<translation>仓库</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="61"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="71"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="81"/>
<source>Mail</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="93"/>
<source>Select</source>
<translation>选择</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="113"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="127"/>
<source>Configure...</source>
<translation>配置...</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="147"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="154"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>SetRemoteUrlDialog</name>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="14"/>
<source>Set Remote URL</source>
<translation>设置远程URL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="20"/>
<source>Current URLs</source>
<translation>当前URL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="30"/>
<source>New URL</source>
<translation>新URL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="36"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="91"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="98"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="43"/>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="63"/>
<source>&amp;Test</source>
<translation>测试(&amp;T)</translation>
</message>
</context>
<context>
<name>SetUserDialog</name>
<message>
<location filename="../../SetUserDialog.ui" line="14"/>
<source>Set User</source>
<translation>设置用户</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="20"/>
<source>Global</source>
<translation>全局</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="27"/>
<location filename="../../SetUserDialog.cpp" line="31"/>
<source>Repository</source>
<translation>仓库</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="42"/>
<source>Name</source>
<translation>名称</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="52"/>
<source>Mail</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="66"/>
<source>Get icon from Gravatar</source>
<translation>从Gravatar获取图标</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="122"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="132"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>SettingBehaviorForm</name>
<message>
<location filename="../../SettingBehaviorForm.ui" line="14"/>
<source>Behavior</source>
<translation>行为</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="20"/>
<location filename="../../SettingBehaviorForm.cpp" line="43"/>
<source>Default working folder</source>
<translation>默认工作文件夹</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="29"/>
<source>Browse...</source>
<translation>浏览...</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="39"/>
<source>Automatically fetch when opening the repository</source>
<translation>打开仓库时自动获取</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="46"/>
<source>Get committer&apos;s icon from gravatar.com</source>
<translation>从gravatar.com获取图标</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="61"/>
<source>Maximum number of commit item acquisitions</source>
<translation>要获取的最大提交信息数</translation>
</message>
<message>
<source>Watch remote changes periodically</source>
<oldsource>Periodically watch remote updates</oldsource>
<translation type="vanished">定期监视远程更改</translation>
</message>
<message>
<source>interval</source>
<oldsource>interval in min:</oldsource>
<translation type="vanished">间隔</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="94"/>
<source>GPG signing policy</source>
<oldsource>GPG Signing Policy</oldsource>
<translation>GPG签名策略</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="101"/>
<source>Configure...</source>
<translation>配置...</translation>
</message>
<message>
<source>Disable</source>
<translation type="vanished">禁用</translation>
</message>
<message>
<source>1 min</source>
<translation type="vanished">1分</translation>
</message>
<message>
<source>%1 mins</source>
<translation type="vanished">%1分</translation>
</message>
</context>
<context>
<name>SettingExampleForm</name>
<message>
<location filename="../../SettingExampleForm.ui" line="14"/>
<source>Example</source>
<translation>示例</translation>
</message>
<message>
<location filename="../../SettingExampleForm.ui" line="20"/>
<source>Underconstruction</source>
<translation>注意</translation>
</message>
</context>
<context>
<name>SettingGeneralForm</name>
<message>
<location filename="../../SettingGeneralForm.ui" line="14"/>
<source>General</source>
<translation>常规</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="20"/>
<source>Language</source>
<translation>语言</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="31"/>
<source>Change Language...</source>
<translation>选择语言...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="54"/>
<source>Change Theme...</source>
<translation>选择主题...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="66"/>
<source>Remember and restore window position</source>
<translation>记住并恢复窗口位置</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="73"/>
<source>Enable high DPI scaling</source>
<translation>启用高清屏幕缩放</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="43"/>
<source>Theme</source>
<translation>主题</translation>
</message>
<message>
<source>English</source>
<translation type="vanished">英语</translation>
</message>
<message>
<source>Japanese</source>
<translation type="vanished">日语</translation>
</message>
<message>
<source>Russian</source>
<translation type="vanished">俄语</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="19"/>
<source>Standard</source>
<translation>标准</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="20"/>
<source>Dark</source>
<translation>暗</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="82"/>
<source>Select Language</source>
<translation>选择语言</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="106"/>
<source>Select Theme</source>
<translation>选择主题</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="93"/>
<source>(Changes are applied at next run)</source>
<translation>(该设置将在下次运行时生效)</translation>
</message>
</context>
<context>
<name>SettingNetworkForm</name>
<message>
<location filename="../../SettingNetworkForm.ui" line="14"/>
<source>Network</source>
<translation>网络</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="20"/>
<source>Proxy server</source>
<oldsource>Proxy Server</oldsource>
<translation>代理服务器</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="26"/>
<source>No proxy</source>
<oldsource>No Proxy</oldsource>
<translation>无代理</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="33"/>
<source>Auto detect</source>
<oldsource>Auto Detect</oldsource>
<translation>自动检测</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="40"/>
<source>Manual</source>
<translation>手动</translation>
</message>
</context>
<context>
<name>SettingProgramsForm</name>
<message>
<location filename="../../SettingProgramsForm.ui" line="14"/>
<source>Programs</source>
<translation>程序</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="20"/>
<source>Git command</source>
<translation>Git命令</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="29"/>
<location filename="../../SettingProgramsForm.ui" line="48"/>
<location filename="../../SettingProgramsForm.ui" line="67"/>
+ <location filename="../../SettingProgramsForm.ui" line="86"/>
<source>Browse...</source>
<translation>浏览...</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="39"/>
<source>File command</source>
<translation>File命令</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="58"/>
<source>GPG command (option)</source>
<translation>GPG命令(选项)</translation>
</message>
+ <message>
+ <location filename="../../SettingProgramsForm.ui" line="77"/>
+ <source>SSH command (option)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../../SettingsDialog.ui" line="14"/>
<source>Settings</source>
<translation>设置</translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="141"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="148"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>TextEditDialog</name>
<message>
<location filename="../../TextEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="48"/>
<source>OK</source>
<translation>确定</translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="58"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>&amp;Close</source>
<translation type="unfinished">关闭(&amp;C)</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>Cacnel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WelcomeWizardDialog</name>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="14"/>
<source>Welcome to the Guitar Wizard</source>
<translation>欢迎来到Guitar向导</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="45"/>
<source>Helper Tools</source>
<translation>助手工具</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="61"/>
<location filename="../../WelcomeWizardDialog.ui" line="338"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="71"/>
<location filename="../../WelcomeWizardDialog.ui" line="88"/>
<location filename="../../WelcomeWizardDialog.ui" line="248"/>
<source>Browse</source>
<translation>浏览</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="78"/>
<location filename="../../WelcomeWizardDialog.ui" line="352"/>
<source>file</source>
<translation>文件</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="120"/>
<source>Global User Information</source>
<translation>全局用户信息</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="142"/>
<source>git config --global user.name</source>
<translation>git config --global user.name</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="152"/>
<source>git config --global user.email</source>
<translation>git config --global user.email</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="168"/>
<source>Get icon from Gravatar</source>
<translation>从Gravatar获取图标</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="222"/>
<location filename="../../WelcomeWizardDialog.cpp" line="163"/>
<source>Default Working Folder</source>
<translation>默认工作文件夹</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="238"/>
<location filename="../../WelcomeWizardDialog.ui" line="324"/>
<source>folder</source>
<translation>文件夹</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="280"/>
<source>Ready to play the Guitar !</source>
<translation>Guitar已就绪!</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="296"/>
<source>user</source>
<translation>用户</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="310"/>
<source>email</source>
<translation>邮箱</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="426"/>
<location filename="../../WelcomeWizardDialog.cpp" line="155"/>
<source>&lt;&lt; Prev</source>
<translation>&lt;&lt; 上一步</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="433"/>
<location filename="../../WelcomeWizardDialog.cpp" line="156"/>
<source>Next &gt;&gt;</source>
<translation>下一步 &gt;&gt;</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="126"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="152"/>
<source>Finish</source>
<translation>结束</translation>
</message>
</context>
</TS>
diff --git a/src/resources/translations/Guitar_zh-TW.qm b/src/resources/translations/Guitar_zh-TW.qm
index e923cd7..1344a00 100644
Binary files a/src/resources/translations/Guitar_zh-TW.qm and b/src/resources/translations/Guitar_zh-TW.qm differ
diff --git a/src/resources/translations/Guitar_zh-TW.ts b/src/resources/translations/Guitar_zh-TW.ts
index 69b0f49..705f814 100644
--- a/src/resources/translations/Guitar_zh-TW.ts
+++ b/src/resources/translations/Guitar_zh-TW.ts
@@ -1,2994 +1,3049 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_TW">
<context>
<name>AboutDialog</name>
<message>
<location filename="../../AboutDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="34"/>
<location filename="../../AboutDialog.ui" line="46"/>
<location filename="../../AboutDialog.ui" line="58"/>
<location filename="../../AboutDialog.ui" line="70"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../AboutDialog.ui" line="86"/>
<source>&lt;a href=&quot;https://github.com/soramimi/Guitar&quot;&gt;https://github.com/soramimi/Guitar&lt;/a&gt;</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../AboutDialog.cpp" line="25"/>
<source>About %1</source>
<translation>%1 關於</translation>
</message>
</context>
<context>
<name>AreYouSureYouWantToContinueConnectingDialog</name>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="14"/>
<source>Unknown Host</source>
<translation>未知主機</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="20"/>
<source>Are you sure you want to continue connecting (yes/no)?</source>
<translation>您想要繼續連接嗎?(是/否)?</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="52"/>
<source>Continue</source>
<translation>繼續</translation>
</message>
<message>
<location filename="../../AreYouSureYouWantToContinueConnectingDialog.ui" line="59"/>
<source>Close</source>
<translation>關閉</translation>
</message>
</context>
<context>
<name>BasicMainWindow</name>
<message>
- <location filename="../../BasicMainWindow.cpp" line="261"/>
+ <location filename="../../BasicMainWindow.cpp" line="243"/>
<source>git command not specified</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="374"/>
+ <location filename="../../BasicMainWindow.cpp" line="358"/>
<source>The URL is a valid repository</source>
<translation>此URL是一個有效的儲存庫</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="375"/>
+ <location filename="../../BasicMainWindow.cpp" line="359"/>
<source>Failed to access the URL</source>
<translation>無法存取此URL</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="380"/>
+ <location filename="../../BasicMainWindow.cpp" line="364"/>
<source>Remote Repository</source>
<translation>遠端儲存庫</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="405"/>
+ <location filename="../../BasicMainWindow.cpp" line="389"/>
<source>&amp;Property</source>
<translation>內容(&amp;P)</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1273"/>
+ <location filename="../../BasicMainWindow.cpp" line="1272"/>
<source>Select %1 command</source>
<translation>選擇 %1 指令</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1452"/>
+ <location filename="../../BasicMainWindow.cpp" line="1447"/>
<source>Revert all files</source>
<translation>放棄所有檔案更動</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1610"/>
+ <location filename="../../BasicMainWindow.cpp" line="1605"/>
<source>The folder is not a valid git repository.</source>
<translation>此資料夾不是一個有效的Git儲存庫。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1614"/>
+ <location filename="../../BasicMainWindow.cpp" line="1609"/>
<source>Do you want to initialize it as a git repository ?</source>
<translation>是否要將其初始化為git儲存庫?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1615"/>
+ <location filename="../../BasicMainWindow.cpp" line="1610"/>
<source>Initialize Repository</source>
<translation>初始化儲存庫</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1745"/>
+ <location filename="../../BasicMainWindow.cpp" line="1740"/>
<source>No repository selected</source>
<translation>未選擇儲存庫</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<source>Repository Property</source>
- <translation>儲存庫內容</translation>
+ <translation type="vanished">儲存庫內容</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="1915"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Not a valid git repository</source>
<translation>不是有效的git儲存庫。</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<location filename="../../BasicMainWindow.cpp" line="2017"/>
<source>Open Repository</source>
<translation>打開儲存庫</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>No such folder</source>
<translation>沒有此資料夾</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2010"/>
<source>Remove from bookmark ?</source>
<translation>是否將其從書籤中刪除?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2248"/>
<source>, %1 ahead</source>
<translation></translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2251"/>
<source>, %1 behind</source>
<translation></translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Confirm Remove</source>
<translation>確定刪除</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation>確定要將此儲存庫從書籤中刪除?</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2272"/>
<source>(Files will NOT be deleted)</source>
<translation>(檔案將不會被刪除)</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2302"/>
<source>A file with same name already exists</source>
<translation>已有相同名稱的檔案存在</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2303"/>
<location filename="../../BasicMainWindow.cpp" line="2308"/>
<location filename="../../BasicMainWindow.cpp" line="2325"/>
<location filename="../../BasicMainWindow.cpp" line="2330"/>
<source>Clone</source>
<translation>複製</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2307"/>
<source>A folder with same name already exists</source>
<translation>已有相同名稱的資料夾存在</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2324"/>
<source>Invalid folder</source>
<translation>無效的資料夾</translation>
</message>
<message>
<location filename="../../BasicMainWindow.cpp" line="2329"/>
<source>No such folder. Create it now ?</source>
<translation>此資料夾並不存在。是否建立?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2398"/>
+ <location filename="../../BasicMainWindow.cpp" line="2402"/>
<source>Commit message can not be omitted.</source>
<translation>提交訊息不能為空白。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2415"/>
+ <location filename="../../BasicMainWindow.cpp" line="2419"/>
<source>Failed to commit</source>
<translation>提交失敗</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2449"/>
- <location filename="../../BasicMainWindow.cpp" line="2533"/>
+ <location filename="../../BasicMainWindow.cpp" line="2453"/>
+ <location filename="../../BasicMainWindow.cpp" line="2538"/>
<source>Connection refused.</source>
<translation>連線被拒。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2502"/>
+ <location filename="../../BasicMainWindow.cpp" line="2506"/>
<source>No remote repository is registered.</source>
<translation>遠端儲存庫尚未被註冊。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2524"/>
+ <location filename="../../BasicMainWindow.cpp" line="2529"/>
<source>The current branch %1 has no upstream branch.</source>
<translation>目前的分支「%1」沒有上游分支。</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2527"/>
+ <location filename="../../BasicMainWindow.cpp" line="2532"/>
<source>You try push --set-upstream</source>
<translation>請嘗試使用 push --set-upstream </translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2616"/>
+ <location filename="../../BasicMainWindow.cpp" line="2621"/>
<source>Failed to delete the branch &apos;%1&apos;</source>
<translation>無法刪除分支「%1」</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">無法刪除分支: &apos;%1&apos;</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2680"/>
+ <location filename="../../BasicMainWindow.cpp" line="2685"/>
<source>Are you sure you want to run the following command ?</source>
<translation>您確定要執行以下指令嗎?</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2701"/>
+ <location filename="../../BasicMainWindow.cpp" line="2706"/>
<source>Reset a file</source>
<translation>重置文件</translation>
</message>
<message>
- <location filename="../../BasicMainWindow.cpp" line="2715"/>
+ <location filename="../../BasicMainWindow.cpp" line="2720"/>
<source>Unnamed</source>
<translation>未命名</translation>
</message>
</context>
<context>
<name>BasicRepositoryDialog</name>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="66"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="77"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="67"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="78"/>
<source>Purpose</source>
<translation>用途</translation>
</message>
<message>
- <location filename="../../BasicRepositoryDialog.cpp" line="68"/>
+ <location filename="../../BasicRepositoryDialog.cpp" line="79"/>
<source>URL</source>
<translation>網址</translation>
</message>
</context>
<context>
<name>BigDiffWindow</name>
<message>
<location filename="../../BigDiffWindow.ui" line="14"/>
<source>Diff</source>
<translation>差異</translation>
</message>
</context>
<context>
<name>BlameWindow</name>
<message>
<location filename="../../BlameWindow.ui" line="14"/>
<source>Blame</source>
<translation>作者與修訂版本訊息</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="45"/>
<source>Information</source>
<translation>資訊</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="60"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="70"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="90"/>
<source>Message</source>
<translation>訊息</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="80"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../BlameWindow.ui" line="118"/>
<source>Close</source>
<translation>關閉</translation>
</message>
</context>
<context>
<name>CheckoutDialog</name>
<message>
<location filename="../../CheckoutDialog.ui" line="14"/>
<source>Checkout</source>
<translation>簽出</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="20"/>
<location filename="../../CheckoutDialog.ui" line="27"/>
<location filename="../../CheckoutDialog.ui" line="34"/>
<source>RadioButton</source>
<translation>單選按鈕</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="63"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../CheckoutDialog.ui" line="70"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CherryPickDialog</name>
<message>
<location filename="../../CherryPickDialog.ui" line="14"/>
<source>Cherry-pick</source>
<translation type="unfinished">擇優挑選</translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="20"/>
<source>HEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="49"/>
<source>Pick</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="78"/>
<source>Mainline</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="109"/>
<source>Allow empty</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="131"/>
<source>OK</source>
<translation type="unfinished">確定</translation>
</message>
<message>
<location filename="../../CherryPickDialog.ui" line="138"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="19"/>
<source>Commit</source>
<translation type="unfinished">提交</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="20"/>
<source>Date</source>
<translation type="unfinished">日期</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="21"/>
<source>Author</source>
<translation type="unfinished">作者</translation>
</message>
<message>
<location filename="../../CherryPickDialog.cpp" line="22"/>
<source>Message</source>
<translation type="unfinished">訊息</translation>
</message>
</context>
<context>
<name>CloneDialog</name>
<message>
<location filename="../../CloneDialog.ui" line="14"/>
- <location filename="../../CloneDialog.ui" line="103"/>
+ <location filename="../../CloneDialog.ui" line="113"/>
<source>Clone</source>
<translation>複製</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="22"/>
<source>Remote</source>
<translation>遠端</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="39"/>
<source>&amp;Test</source>
<translation>測試(&amp;T)</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="46"/>
<source>Local</source>
<translation>本地</translation>
</message>
<message>
<location filename="../../CloneDialog.ui" line="56"/>
<source>Browse</source>
<translation>瀏覽</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="83"/>
+ <location filename="../../CloneDialog.ui" line="93"/>
<source>Open existing local directory...</source>
<translation>打開現有的本地資料夾...</translation>
</message>
<message>
- <location filename="../../CloneDialog.ui" line="113"/>
+ <location filename="../../CloneDialog.ui" line="123"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="40"/>
+ <location filename="../../CloneDialog.cpp" line="41"/>
<source>Search</source>
<translation>搜尋</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="41"/>
+ <location filename="../../CloneDialog.cpp" line="42"/>
<source>GitHub</source>
<translation></translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="113"/>
+ <location filename="../../CloneDialog.cpp" line="115"/>
<source>Checkout into</source>
<translation>簽出至</translation>
</message>
<message>
- <location filename="../../CloneDialog.cpp" line="125"/>
+ <location filename="../../CloneDialog.cpp" line="127"/>
<source>Open existing directory</source>
<translation>打開現有的資料夾</translation>
</message>
</context>
<context>
<name>CloneFromGitHubDialog</name>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="14"/>
<source>Clone from GitHub</source>
<translation>從GitHub複製</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="45"/>
<source>ssh</source>
<translation>ssh</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="55"/>
<source>http</source>
<translation>http</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="95"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../CloneFromGitHubDialog.ui" line="102"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CommitDialog</name>
<message>
<location filename="../../CommitDialog.ui" line="14"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="27"/>
<source>TextLabel</source>
<translation>文字標籤</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="49"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="68"/>
<location filename="../../CommitDialog.ui" line="94"/>
<location filename="../../CommitDialog.ui" line="139"/>
<location filename="../../CommitDialog.ui" line="159"/>
<location filename="../../CommitDialog.ui" line="179"/>
<source>---</source>
<translation></translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="75"/>
<location filename="../../CommitDialog.ui" line="166"/>
<source>Mail</source>
<translation>電子郵件</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="111"/>
<source>GPG Signing</source>
<translation>GPG簽名</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="126"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="146"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../CommitDialog.ui" line="189"/>
<source>Configure...</source>
<translation>設定...</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="198"/>
+ <location filename="../../CommitDialog.ui" line="203"/>
<source>Message</source>
<translation>訊息</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="223"/>
+ <location filename="../../CommitDialog.ui" line="210"/>
+ <source>Amend</source>
+ <translation>修改</translation>
+ </message>
+ <message>
+ <location filename="../../CommitDialog.ui" line="237"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
- <location filename="../../CommitDialog.ui" line="233"/>
+ <location filename="../../CommitDialog.ui" line="247"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CommitExploreWindow</name>
<message>
<location filename="../../CommitExploreWindow.ui" line="14"/>
<source>Commit Explorer</source>
<translation>提交瀏覽器</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="65"/>
<source>Commit ID</source>
<translation>提交ID</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="82"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.ui" line="89"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../CommitExploreWindow.cpp" line="78"/>
<source>Commit</source>
<translation>提交</translation>
</message>
</context>
<context>
<name>CommitPropertyDialog</name>
<message>
<location filename="../../CommitPropertyDialog.ui" line="14"/>
<source>Commit Property</source>
<oldsource>Commit Properties</oldsource>
<translation>提交內容</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="46"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="56"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="66"/>
<location filename="../../CommitPropertyDialog.ui" line="196"/>
<source>Mail</source>
<translation>電子郵件</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="154"/>
<source>GPG Sign</source>
<translation>GPG簽名</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="176"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="186"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="233"/>
<source>Commit ID</source>
<translation>提交ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="243"/>
<source>Parent IDs</source>
<translation>父層ID</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="265"/>
<source>Files...</source>
<translation>檔案...</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="285"/>
<source>Explorer</source>
<translation>瀏覽器</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="305"/>
<source>Checkout</source>
<translation>簽出</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="312"/>
<source>Jump</source>
<translation>移至</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.ui" line="332"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
<location filename="../../CommitPropertyDialog.cpp" line="60"/>
<source>&lt;Unknown&gt;</source>
<translation>&lt;未知的&gt;</translation>
</message>
</context>
<context>
<name>CommitViewWindow</name>
<message>
<location filename="../../CommitViewWindow.ui" line="14"/>
<source>Commit View</source>
<translation>提交線圖</translation>
</message>
<message>
<location filename="../../CommitViewWindow.cpp" line="58"/>
<source>History</source>
<translation>歷史</translation>
</message>
</context>
<context>
<name>ConfigCredentialHelperDialog</name>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="14"/>
<source>Dialog</source>
<translation>對話框</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="26"/>
<source>wincred</source>
<translation>wincred</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="39"/>
<source>winstore</source>
<translation>winstore</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="52"/>
<source>None</source>
<translation>無</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="65"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="78"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../ConfigCredentialHelperDialog.ui" line="91"/>
<source>Other</source>
<translation>其他</translation>
</message>
</context>
<context>
<name>ConfigSigningDialog</name>
<message>
<location filename="../../ConfigSigningDialog.ui" line="14"/>
<source>Signing Policy</source>
<translation>簽名政策</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="20"/>
<source>Config commit.gpgsign</source>
<translation>設定commit.gpgsign</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="32"/>
<source>global</source>
<translation>全域</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="42"/>
<source>local</source>
<translation>本地</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="70"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../ConfigSigningDialog.ui" line="77"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>CreateRepositoryDialog</name>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="14"/>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="46"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Create Repository</source>
<translation>建立儲存庫</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="22"/>
<source>Path</source>
<translation>路徑</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="32"/>
<source>Browse</source>
<translation>瀏覽</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="54"/>
<source>Bookmark</source>
<translation>書籤</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="63"/>
<location filename="../../CreateRepositoryDialog.ui" line="88"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="76"/>
<source>Remote</source>
<translation>遠端</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="98"/>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="108"/>
<source>Test</source>
<translation>測試</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="146"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.ui" line="153"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="19"/>
<source>A valid git repository already exists there.</source>
<translation>已存在有效的儲存庫。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="42"/>
<location filename="../../CreateRepositoryDialog.cpp" line="50"/>
<source>The specified path is not a directory.</source>
<translation>指定的路徑不是資料夾。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="54"/>
<source>Remote name is invalid.</source>
<translation>遠端名稱無效。</translation>
</message>
<message>
<location filename="../../CreateRepositoryDialog.cpp" line="62"/>
<source>Destination Path</source>
<translation>目標路徑</translation>
</message>
</context>
<context>
<name>DeleteBranchDialog</name>
<message>
<location filename="../../DeleteBranchDialog.ui" line="14"/>
<source>Delete Branch</source>
<translation>刪除分支</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="25"/>
<source>&amp;All branches</source>
<translation>所有分支(&amp;A)</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="45"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.ui" line="52"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../DeleteBranchDialog.cpp" line="23"/>
<source>Delete Remote Branch</source>
<translation>刪除遠端分支</translation>
</message>
</context>
<context>
<name>DeleteTagsDialog</name>
<message>
<location filename="../../DeleteTagsDialog.ui" line="14"/>
<source>Delete tags</source>
<translation>刪除標籤</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="32"/>
<source>Check all</source>
<translation>全部檢查</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="52"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../DeleteTagsDialog.ui" line="62"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>DoYouWantToInitDialog</name>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="14"/>
<source>Init Repository</source>
<translation>初始化儲存庫</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="20"/>
<source>The folder:</source>
<translation>資料夾:</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="32"/>
<source>is not a valid git working copy.</source>
<translation>不是有效的git儲存庫。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="39"/>
<source>Do you want to init it as a git repository ?</source>
<translation>您想要將其初始化為git儲存庫嗎?</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="81"/>
<source>Yes, Please init it.</source>
<translation>是,請初始化。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="88"/>
<source>No, Stop it.</source>
<translation>否,不要初始化。</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.ui" line="140"/>
<source>Please choose option</source>
<translation>請選擇選項</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="20"/>
<source>Next...</source>
<translation>下一步...</translation>
</message>
<message>
<location filename="../../DoYouWantToInitDialog.cpp" line="26"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>EditGitIgnoreDialog</name>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="14"/>
<source>Edit Git Ignore</source>
<translation>編輯Git忽略檔案</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="20"/>
<location filename="../../EditGitIgnoreDialog.ui" line="27"/>
<location filename="../../EditGitIgnoreDialog.ui" line="34"/>
<location filename="../../EditGitIgnoreDialog.ui" line="41"/>
<source>RadioButton</source>
<translation>單選按鈕</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="63"/>
<source>Edit the file</source>
<translation>編輯文件</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="83"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../EditGitIgnoreDialog.ui" line="90"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>EditRemoteDialog</name>
<message>
<location filename="../../EditRemoteDialog.ui" line="14"/>
<source>Edit Remote</source>
<translation>遠端編輯</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="20"/>
<source>Remote</source>
<translation>遠端</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="26"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="33"/>
<source>URL</source>
<translation>URL</translation>
</message>
<message>
<location filename="../../EditRemoteDialog.ui" line="53"/>
<source>&amp;Test</source>
<translation>測試(&amp;T)</translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="81"/>
+ <location filename="../../EditRemoteDialog.ui" line="104"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
- <location filename="../../EditRemoteDialog.ui" line="88"/>
+ <location filename="../../EditRemoteDialog.ui" line="111"/>
<source>Close</source>
<translation>關閉</translation>
</message>
</context>
<context>
<name>EditTagsDialog</name>
<message>
<location filename="../../EditTagsDialog.ui" line="14"/>
<source>Edit Tags</source>
<translation>編輯標籤</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="41"/>
<source>Add...</source>
<translation>新增...</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="48"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
<location filename="../../EditTagsDialog.ui" line="68"/>
<source>Close</source>
<translation>關閉</translation>
</message>
</context>
<context>
<name>ExperimentDialog</name>
<message>
<location filename="../../ExperimentDialog.ui" line="14"/>
<source>Dialog</source>
<translation>對話框</translation>
</message>
</context>
<context>
<name>FileDiffWidget</name>
<message>
<location filename="../../FileDiffWidget.ui" line="14"/>
<source>Dialog</source>
<translation>對話框</translation>
</message>
</context>
<context>
<name>FileHistoryWindow</name>
<message>
<location filename="../../FileHistoryWindow.ui" line="14"/>
<source>File History</source>
<translation>檔案歷史紀錄</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.ui" line="20"/>
<location filename="../../FileHistoryWindow.ui" line="27"/>
<source>TextLabel</source>
<translation>文字標籤</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="111"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="112"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="113"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<location filename="../../FileHistoryWindow.cpp" line="114"/>
<source>Message</source>
<translation>訊息</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">描述</translation>
</message>
</context>
<context>
<name>FilePropertyDialog</name>
<message>
<location filename="../../FilePropertyDialog.ui" line="14"/>
<source>File Property</source>
<oldsource>File Properties</oldsource>
<translation>檔案內容</translation>
</message>
<message>
<location filename="../../FilePropertyDialog.ui" line="78"/>
<source>&amp;Close</source>
<translation>關閉(&amp;C)</translation>
</message>
</context>
+<context>
+ <name>FileViewWidget</name>
+ <message>
+ <location filename="../../FileViewWidget.cpp" line="30"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>FindCommitDialog</name>
<message>
<location filename="../../FindCommitDialog.ui" line="14"/>
<source>Find Commit</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="54"/>
<source>OK</source>
<translation type="unfinished">確定</translation>
</message>
<message>
<location filename="../../FindCommitDialog.ui" line="61"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
</context>
<context>
<name>InputNewTagDialog</name>
<message>
<location filename="../../InputNewTagDialog.ui" line="14"/>
<source>Edit tag</source>
<translation>編輯標籤</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="31"/>
<source>Tag</source>
<translation>標籤</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="58"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../InputNewTagDialog.ui" line="65"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>JumpDialog</name>
<message>
<location filename="../../JumpDialog.ui" line="14"/>
<source>Jump</source>
<translation>移至</translation>
</message>
<message>
<source>Branches and Tags</source>
<translation type="vanished">分支與標籤</translation>
</message>
<message>
<source>&amp;Filter</source>
<translation type="vanished">篩選器(&amp;F)</translation>
</message>
<message>
<source>Find</source>
<translation type="vanished">尋找</translation>
</message>
<message>
<source>&amp;Checkout</source>
<translation type="vanished">簽出(&amp;C)</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="20"/>
<source>Branch, Tag or Commit-ID :</source>
<translation>分支,標籤,提交ID</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="71"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../JumpDialog.ui" line="81"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../JumpDialog.cpp" line="39"/>
<source>Name</source>
<translation>名稱</translation>
</message>
</context>
<context>
<name>Languages</name>
<message>
<location filename="../../Languages.cpp" line="6"/>
<source>English</source>
<translation type="unfinished">英文</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="7"/>
<source>Japanese</source>
<translation type="unfinished">日語</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="8"/>
<source>Russian</source>
<translation type="unfinished">俄文</translation>
</message>
<message>
<location filename="../../Languages.cpp" line="9"/>
<source>Chinese (Simplified)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../Languages.cpp" line="10"/>
<source>Chinese (Traditional/Taiwan)</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>LineEditDialog</name>
<message>
<location filename="../../LineEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation>對話框</translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="20"/>
<source>TextLabel</source>
<translation>文字標籤</translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="45"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../LineEditDialog.ui" line="52"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>MainWindow</name>
<message>
<location filename="../../MainWindow.ui" line="14"/>
<source>Guitar</source>
<translation>Guitar</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="96"/>
- <location filename="../../MainWindow.ui" line="1421"/>
- <location filename="../../MainWindow.ui" line="1424"/>
+ <location filename="../../MainWindow.ui" line="1416"/>
+ <location filename="../../MainWindow.ui" line="1419"/>
<source>Clone</source>
<translation>複製</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="131"/>
- <location filename="../../MainWindow.cpp" line="1140"/>
- <location filename="../../MainWindow.cpp" line="1141"/>
+ <location filename="../../MainWindow.cpp" line="1135"/>
+ <location filename="../../MainWindow.cpp" line="1136"/>
<source>Fetch</source>
<translation>提取</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="166"/>
<source>Pull</source>
<translation>拉取</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="201"/>
<source>Push</source>
<translation>推送</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="303"/>
- <location filename="../../MainWindow.ui" line="1548"/>
+ <location filename="../../MainWindow.ui" line="1543"/>
<source>Terminal</source>
<translation>終端機</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="338"/>
- <location filename="../../MainWindow.ui" line="1557"/>
+ <location filename="../../MainWindow.ui" line="1552"/>
<source>Explorer</source>
<translation>檔案總管</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="424"/>
<source>Repository</source>
<translation>儲存庫</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="431"/>
<source>Branch Name</source>
<translation>分支名稱</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="483"/>
- <location filename="../../MainWindow.ui" line="1592"/>
+ <location filename="../../MainWindow.ui" line="1587"/>
<source>Offline</source>
<translation>離線</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="473"/>
- <location filename="../../MainWindow.ui" line="1587"/>
+ <location filename="../../MainWindow.ui" line="1582"/>
<source>Online</source>
<translation>在线</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="799"/>
- <location filename="../../MainWindow.cpp" line="1853"/>
+ <location filename="../../MainWindow.cpp" line="1848"/>
<source>Unstage</source>
<translation>取消暫存變更</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="828"/>
<source>Select all</source>
<translation>全選</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="863"/>
- <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1718"/>
<source>Stage</source>
<translation>暫存變更</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="892"/>
- <location filename="../../MainWindow.cpp" line="879"/>
+ <location filename="../../MainWindow.cpp" line="874"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1023"/>
<source>&amp;File</source>
<translation>檔案(&amp;F)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="1034"/>
<source>&amp;View</source>
<translation>檢視(&amp;V)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1040"/>
+ <location filename="../../MainWindow.ui" line="1041"/>
<source>&amp;Edit</source>
<translation>編輯(&amp;E)</translation>
</message>
<message>
<source>Destructive</source>
<translation type="vanished">需要注意的指令</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1412"/>
+ <location filename="../../MainWindow.ui" line="1407"/>
<source>Settings</source>
<translation>設定</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1434"/>
- <location filename="../../MainWindow.cpp" line="1595"/>
+ <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.cpp" line="1590"/>
<source>Edit tags...</source>
<translation>編輯標籤...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1437"/>
+ <location filename="../../MainWindow.ui" line="1432"/>
<source>Edit tags</source>
<translation>編輯標籤</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1562"/>
+ <location filename="../../MainWindow.ui" line="1557"/>
<source>Clean -df</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1567"/>
+ <location filename="../../MainWindow.ui" line="1562"/>
<source>Reset --hard</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1494"/>
+ <location filename="../../MainWindow.ui" line="1489"/>
<source>Create a repository</source>
<translation>建立儲存庫</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1476"/>
<source>Push upstream</source>
<translation>推送至上游</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1503"/>
+ <location filename="../../MainWindow.ui" line="1498"/>
<source>Stop process</source>
<translation>停止處理</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1508"/>
+ <location filename="../../MainWindow.ui" line="1503"/>
<source>E&amp;xit</source>
<translation>離開(&amp;X)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1511"/>
+ <location filename="../../MainWindow.ui" line="1506"/>
<source>Ctrl+Q</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1516"/>
+ <location filename="../../MainWindow.ui" line="1511"/>
<source>Reflog...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1516"/>
<source>Property...</source>
<translation>內容...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1526"/>
- <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.ui" line="1521"/>
+ <location filename="../../MainWindow.ui" line="1524"/>
<source>Set GPG signing</source>
<translation>設定GPG簽名</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1539"/>
+ <location filename="../../MainWindow.ui" line="1534"/>
<source>Fetch --prune</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1055"/>
+ <location filename="../../MainWindow.ui" line="1056"/>
<source>&amp;Help</source>
<translation>說明(&amp;H)</translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="252"/>
- <location filename="../../MainWindow.ui" line="1628"/>
- <location filename="../../MainWindow.cpp" line="1353"/>
+ <location filename="../../MainWindow.ui" line="1623"/>
+ <location filename="../../MainWindow.cpp" line="1348"/>
<source>Status</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MainWindow.ui" line="656"/>
<source>...</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1061"/>
+ <location filename="../../MainWindow.ui" line="1062"/>
<source>&amp;Window</source>
<translation>視窗(&amp;W)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1067"/>
+ <location filename="../../MainWindow.ui" line="1073"/>
<source>&amp;Repository</source>
<translation>儲存庫(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1071"/>
- <location filename="../../MainWindow.ui" line="1572"/>
+ <location filename="../../MainWindow.ui" line="1077"/>
+ <location filename="../../MainWindow.ui" line="1567"/>
<source>Stash</source>
<translation>擱置</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1098"/>
+ <location filename="../../MainWindow.ui" line="1104"/>
<source>Re&amp;mote</source>
<translation>遠端(&amp;M)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1113"/>
+ <location filename="../../MainWindow.ui" line="1119"/>
<source>&amp;Destructive</source>
<translation>注意(&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1125"/>
- <source>Experimental</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../../MainWindow.ui" line="1155"/>
+ <location filename="../../MainWindow.ui" line="1150"/>
<source>Log</source>
<translation>日誌</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1325"/>
+ <location filename="../../MainWindow.ui" line="1320"/>
<source>&amp;Open existing working copy...</source>
<translation>打開所有工作副本(&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1328"/>
- <location filename="../../MainWindow.cpp" line="2027"/>
+ <location filename="../../MainWindow.ui" line="1323"/>
+ <location filename="../../MainWindow.cpp" line="2022"/>
<source>Add existing working copy</source>
<translation>新增所有工作副本</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1333"/>
- <location filename="../../MainWindow.ui" line="1336"/>
+ <location filename="../../MainWindow.ui" line="1328"/>
+ <location filename="../../MainWindow.ui" line="1331"/>
<source>Refresh</source>
<translation>更新</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1339"/>
+ <location filename="../../MainWindow.ui" line="1334"/>
<source>F5</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1348"/>
+ <location filename="../../MainWindow.ui" line="1343"/>
<source>&amp;Commit</source>
<translation>提交(&amp;C)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1357"/>
+ <location filename="../../MainWindow.ui" line="1352"/>
<source>&amp;Push</source>
<translation>推送(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1365"/>
+ <location filename="../../MainWindow.ui" line="1360"/>
<source>test</source>
<translation>測試</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1368"/>
+ <location filename="../../MainWindow.ui" line="1363"/>
<source>Ctrl+T</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1377"/>
+ <location filename="../../MainWindow.ui" line="1372"/>
<source>Pu&amp;ll</source>
<translation>拉取(&amp;L)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1381"/>
<source>&amp;Fetch</source>
<translation>提取(&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1391"/>
- <location filename="../../MainWindow.ui" line="1394"/>
+ <location filename="../../MainWindow.ui" line="1386"/>
+ <location filename="../../MainWindow.ui" line="1389"/>
<source>Edit global .gitconfig</source>
<translation>編輯全域.gitignore</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1399"/>
+ <location filename="../../MainWindow.ui" line="1394"/>
<source>Edit .git/config</source>
<translation>編輯.git/config</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1404"/>
+ <location filename="../../MainWindow.ui" line="1399"/>
<source>Edit .gitignore</source>
<translation>編輯.gitignore</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1409"/>
+ <location filename="../../MainWindow.ui" line="1404"/>
<source>&amp;Settings...</source>
<translation>設定(&amp;S)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1458"/>
+ <location filename="../../MainWindow.ui" line="1453"/>
<source>F4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1463"/>
+ <location filename="../../MainWindow.ui" line="1458"/>
<source>&amp;Jump...</source>
<translation>移至(&amp;J)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1466"/>
+ <location filename="../../MainWindow.ui" line="1461"/>
<source>Ctrl+J</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.ui" line="1466"/>
<source>Check&amp;out...</source>
<translation>簽出(&amp;O)...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1476"/>
- <location filename="../../MainWindow.cpp" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1471"/>
+ <location filename="../../MainWindow.cpp" line="1595"/>
<source>Delete branch...</source>
<translation>刪除分支...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1577"/>
+ <location filename="../../MainWindow.ui" line="1572"/>
<source>Apply</source>
<translation>套用</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1582"/>
+ <location filename="../../MainWindow.ui" line="1577"/>
<source>Drop</source>
<translation>丟棄</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1600"/>
+ <location filename="../../MainWindow.ui" line="1595"/>
<source>Repositories panel</source>
<translation>儲存庫面板</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1603"/>
+ <location filename="../../MainWindow.ui" line="1598"/>
<source>Ctrl+R</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1608"/>
+ <location filename="../../MainWindow.ui" line="1603"/>
<source>&amp;Find...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1611"/>
+ <location filename="../../MainWindow.ui" line="1606"/>
<source>Ctrl+F</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1616"/>
+ <location filename="../../MainWindow.ui" line="1611"/>
<source>Find next</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1619"/>
+ <location filename="../../MainWindow.ui" line="1614"/>
<source>F3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1633"/>
+ <location filename="../../MainWindow.ui" line="1628"/>
<source>Jump to &amp;HEAD</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1636"/>
+ <location filename="../../MainWindow.ui" line="1631"/>
<source>Ctrl+H</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1641"/>
+ <location filename="../../MainWindow.ui" line="1636"/>
<source>Merge...</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1646"/>
+ <location filename="../../MainWindow.ui" line="1641"/>
<source>Expand commit log</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1649"/>
+ <location filename="../../MainWindow.ui" line="1644"/>
<source>Ctrl+2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1654"/>
+ <location filename="../../MainWindow.ui" line="1649"/>
<source>Expand file list</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1657"/>
+ <location filename="../../MainWindow.ui" line="1652"/>
<source>Ctrl+3</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1662"/>
+ <location filename="../../MainWindow.ui" line="1657"/>
<source>Expand diff view</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1665"/>
+ <location filename="../../MainWindow.ui" line="1660"/>
<source>Ctrl+4</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1670"/>
+ <location filename="../../MainWindow.ui" line="1668"/>
<source>Sidebar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1673"/>
- <source>F1</source>
+ <location filename="../../MainWindow.ui" line="1671"/>
+ <source>Ctrl+1</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1678"/>
+ <location filename="../../MainWindow.ui" line="1687"/>
+ <source>Show labels</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1690"/>
+ <source>Ctrl+L</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../MainWindow.ui" line="1676"/>
<source>Wide</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1681"/>
+ <location filename="../../MainWindow.ui" line="1679"/>
<source>F2</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1486"/>
- <location filename="../../MainWindow.ui" line="1489"/>
+ <location filename="../../MainWindow.ui" line="1481"/>
+ <location filename="../../MainWindow.ui" line="1484"/>
<source>Reset HEAD~1</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1534"/>
- <location filename="../../MainWindow.cpp" line="1601"/>
+ <location filename="../../MainWindow.ui" line="1529"/>
+ <location filename="../../MainWindow.cpp" line="1596"/>
<source>Delete remote branch...</source>
<translation>刪除遠端分支...</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1429"/>
+ <location filename="../../MainWindow.ui" line="1424"/>
<source>&amp;About</source>
<translation>關於Guitar(&amp;A)</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1442"/>
+ <location filename="../../MainWindow.ui" line="1437"/>
<source>Push all tags</source>
<translation>推送所有標籤</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1447"/>
+ <location filename="../../MainWindow.ui" line="1442"/>
<source>Set config user</source>
<translation>設定使用者訊息</translation>
</message>
<message>
- <location filename="../../MainWindow.ui" line="1455"/>
+ <location filename="../../MainWindow.ui" line="1450"/>
<source>&amp;Log</source>
<translation>日誌(&amp;L)</translation>
</message>
<message>
<source>Unnamed</source>
<translation type="vanished">未命名</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="679"/>
+ <location filename="../../MainWindow.cpp" line="674"/>
<source>Default</source>
<translation>預設</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="878"/>
+ <location filename="../../MainWindow.cpp" line="873"/>
<source>Graph</source>
<translation>線圖</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="880"/>
+ <location filename="../../MainWindow.cpp" line="875"/>
<source>Date</source>
<translation>日期</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="881"/>
+ <location filename="../../MainWindow.cpp" line="876"/>
<source>Author</source>
<translation>作者</translation>
</message>
<message>
<source>Description</source>
<translation type="vanished">描述</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1029"/>
- <location filename="../../MainWindow.cpp" line="1199"/>
+ <location filename="../../MainWindow.cpp" line="1024"/>
+ <location filename="../../MainWindow.cpp" line="1194"/>
<source>Uncommited changes</source>
<translation>未提交的變更</translation>
</message>
<message>
<source>Are you sure you want to remove the repository from bookmarks ?</source>
<translation type="vanished">確定將此儲存庫從書籤中刪除嗎?</translation>
</message>
<message>
<source>(Files will NOT be deleted)</source>
<translation type="vanished">(此文件將不會被刪除)</translation>
</message>
<message>
<source>Open Repository</source>
<translation type="vanished">開啟儲存庫</translation>
</message>
<message>
<source>No such folder</source>
<translation type="vanished">沒有此資料夾。</translation>
</message>
<message>
<source>Not a valid git repository</source>
<translation type="vanished">不是有效的儲存庫</translation>
</message>
<message>
<source>Commit message can not be omitted.</source>
<translation type="vanished">提交訊息不能為空白。</translation>
</message>
<message>
<source>Repository Property</source>
<translation type="vanished">儲存庫內容</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1457"/>
+ <location filename="../../MainWindow.cpp" line="1452"/>
<source>&amp;Add new group</source>
<translation>新增群組(&amp;A)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1458"/>
+ <location filename="../../MainWindow.cpp" line="1453"/>
<source>&amp;Delete group</source>
<translation>刪除群組(&amp;D)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1459"/>
+ <location filename="../../MainWindow.cpp" line="1454"/>
<source>&amp;Rename group</source>
<translation>重新命名群組(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1464"/>
+ <location filename="../../MainWindow.cpp" line="1459"/>
<source>New group</source>
<translation>新群組</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1488"/>
+ <location filename="../../MainWindow.cpp" line="1483"/>
<source>Open &amp;terminal</source>
<translation>開啟終端機(&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1489"/>
+ <location filename="../../MainWindow.cpp" line="1484"/>
<source>Open command promp&amp;t</source>
<translation>開啟命令提示字元(&amp;T)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1491"/>
+ <location filename="../../MainWindow.cpp" line="1486"/>
<source>&amp;Open</source>
<translation>開啟(&amp;O)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1502"/>
+ <location filename="../../MainWindow.cpp" line="1497"/>
<source>Open &amp;folder</source>
<translation>打開資料夾(&amp;F)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1507"/>
+ <location filename="../../MainWindow.cpp" line="1502"/>
<source>&amp;Remove</source>
<translation>刪除(&amp;R)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1550"/>
+ <location filename="../../MainWindow.cpp" line="1545"/>
<source>Copy commit id (7 letters)</source>
<translation>複製提交ID(7個字母)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1551"/>
+ <location filename="../../MainWindow.cpp" line="1546"/>
<source>Copy commit id (completely)</source>
<translation>複製提交ID(全部)</translation>
</message>
<message>
<source>Edit comment...</source>
<translation type="vanished">編輯提交訊息...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1242"/>
- <location filename="../../MainWindow.cpp" line="1593"/>
+ <location filename="../../MainWindow.cpp" line="1237"/>
+ <location filename="../../MainWindow.cpp" line="1588"/>
<source>Rebase</source>
<translation>Rebase</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1605"/>
+ <location filename="../../MainWindow.cpp" line="1600"/>
<source>Explore</source>
<translation>瀏覽</translation>
</message>
<message>
<source>Reset HEAD</source>
<translation type="vanished">重置HEAD</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="882"/>
+ <location filename="../../MainWindow.cpp" line="877"/>
<source>Message</source>
<translation>訊息</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1679"/>
- <location filename="../../MainWindow.cpp" line="1728"/>
- <location filename="../../MainWindow.cpp" line="1854"/>
+ <location filename="../../MainWindow.cpp" line="1674"/>
+ <location filename="../../MainWindow.cpp" line="1723"/>
+ <location filename="../../MainWindow.cpp" line="1849"/>
<source>History</source>
<translation>歷史紀錄</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>No such commit</source>
<translation>沒有這樣的提交</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1143"/>
- <location filename="../../MainWindow.cpp" line="1144"/>
+ <location filename="../../MainWindow.cpp" line="1138"/>
+ <location filename="../../MainWindow.cpp" line="1139"/>
<source>Update</source>
<translation>更新</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2762"/>
+ <location filename="../../MainWindow.cpp" line="2757"/>
<source>Authentication Failed</source>
<translation>認證失敗</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1596"/>
+ <location filename="../../MainWindow.cpp" line="1591"/>
<source>Revert</source>
<translation>放棄變更</translation>
</message>
<message>
<source>Failed to commit</source>
<translation type="vanished">提交失敗</translation>
</message>
<message>
<source>No remote repository is registered.</source>
<translation type="vanished">遠端儲存庫尚未被註冊。</translation>
</message>
<message>
<source>The current branch %1 has no upstream branch.</source>
<translation type="vanished">目前的分支「%1」沒有上游分支。</translation>
</message>
<message>
<source>You try push --set-upstream</source>
<translation type="vanished">請嘗試使用 push --set-upstream</translation>
</message>
<message>
<source>Connection refused.</source>
<translation type="vanished">連線被拒絕</translation>
</message>
<message>
<source>&amp;Property</source>
<translation type="vanished">內容(&amp;P)</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1567"/>
+ <location filename="../../MainWindow.cpp" line="1562"/>
<source>Checkout/Branch...</source>
<translation>簽出/分支...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1589"/>
+ <location filename="../../MainWindow.cpp" line="1584"/>
<source>Edit message...</source>
<translation>編輯訊息...</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1592"/>
+ <location filename="../../MainWindow.cpp" line="1587"/>
<source>Merge</source>
<translation>合併</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1594"/>
+ <location filename="../../MainWindow.cpp" line="1589"/>
<source>Cherry-pick</source>
<translation>擇優挑選</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1678"/>
- <location filename="../../MainWindow.cpp" line="1727"/>
+ <location filename="../../MainWindow.cpp" line="1673"/>
+ <location filename="../../MainWindow.cpp" line="1722"/>
<source>Untrack</source>
<translation>不追蹤</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1680"/>
- <location filename="../../MainWindow.cpp" line="1729"/>
- <location filename="../../MainWindow.cpp" line="1855"/>
+ <location filename="../../MainWindow.cpp" line="1675"/>
+ <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1850"/>
<source>Blame</source>
<translation>作者及版本修訂訊息</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1688"/>
+ <location filename="../../MainWindow.cpp" line="1683"/>
<source>Delete selected files.</source>
<translation>刪除選擇的檔案。</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1699"/>
+ <location filename="../../MainWindow.cpp" line="1694"/>
<source>rm --cached files</source>
<translation></translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1724"/>
+ <location filename="../../MainWindow.cpp" line="1719"/>
<source>Reset</source>
<translation>重置</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1725"/>
+ <location filename="../../MainWindow.cpp" line="1720"/>
<source>Ignore</source>
<translation>忽略</translation>
</message>
<message>
<source>Reset a file</source>
<translation type="vanished">重置檔案</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1239"/>
+ <location filename="../../MainWindow.cpp" line="1234"/>
<source>Are you sure you want to rebase the commit ?</source>
<translation></translation>
</message>
<message>
<source>No repository selected</source>
<translation type="vanished">沒有選擇儲存庫</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="1677"/>
- <location filename="../../MainWindow.cpp" line="1726"/>
+ <location filename="../../MainWindow.cpp" line="1672"/>
+ <location filename="../../MainWindow.cpp" line="1721"/>
<source>Delete</source>
<translation>刪除</translation>
</message>
<message>
<source>Are you sure you want to run the following command ?</source>
<translation type="vanished">確定要執行以下指令嗎?</translation>
</message>
<message>
<source>Revert all files</source>
<translation type="vanished">放棄所有變更</translation>
</message>
<message>
<source>Select %1 command</source>
<translation type="vanished">選擇「%1」指令</translation>
</message>
<message>
<source>A file with same name already exists</source>
<translation type="vanished">已有相同檔案名稱</translation>
</message>
<message>
<source>A folder with same name already exists</source>
<translation type="vanished">已有相同的資料夾名稱</translation>
</message>
<message>
<source>Invalid folder</source>
<translation type="vanished">資料夾無效</translation>
</message>
<message>
<source>No such folder. Create it now ?</source>
<translation type="vanished">此資料夾不存在,是否要建立?</translation>
</message>
<message>
<source>The URL is a valid repository</source>
<translation type="vanished">此URL是有效的儲存庫</translation>
</message>
<message>
<source>Failed to access the URL</source>
<translation type="vanished">無法存取此URL</translation>
</message>
<message>
<source>Remote Repository</source>
<translation type="vanished">遠端儲存庫</translation>
</message>
<message>
- <location filename="../../MainWindow.cpp" line="2436"/>
- <location filename="../../MainWindow.cpp" line="2450"/>
+ <location filename="../../MainWindow.cpp" line="2431"/>
+ <location filename="../../MainWindow.cpp" line="2445"/>
<source>Jump</source>
<translation>移至</translation>
</message>
<message>
<source>That commmit has not foud or not read yet</source>
<translation type="vanished">未找到或尚未讀取到此提交</translation>
</message>
<message>
<source>Failed to delete the branch &apos;%1&apos;
</source>
<translation type="vanished">無法刪除分支:&apos;%1&apos;</translation>
</message>
</context>
<context>
<name>MergeBranchDialog</name>
<message>
<source>Merge</source>
<translation type="vanished">合併</translation>
</message>
<message>
<source>Current branch :</source>
<translation type="vanished">目前分支:</translation>
</message>
<message>
<source>OK</source>
<translation type="vanished">確定</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">取消</translation>
</message>
</context>
<context>
<name>MergeDialog</name>
<message>
<location filename="../../MergeDialog.ui" line="14"/>
<source>Merge</source>
<translation type="unfinished">合併</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="20"/>
<source>Fast Forwarding</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="26"/>
<source>Default (--ff)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="33"/>
<source>No fast forward (--no-ff)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="40"/>
<source>Fast forward only (--ff-only)</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="50"/>
<source>From</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="77"/>
<source>OK</source>
<translation type="unfinished">確定</translation>
</message>
<message>
<location filename="../../MergeDialog.ui" line="84"/>
<source>Cancel</source>
<translation type="unfinished">取消</translation>
</message>
</context>
<context>
<name>MyImageViewWidget</name>
<message>
<location filename="../../MyImageViewWidget.cpp" line="34"/>
<source>Save as...</source>
<translation>另存為...</translation>
</message>
<message>
<location filename="../../MyImageViewWidget.cpp" line="42"/>
<source>Save as</source>
<translation>另存為</translation>
</message>
</context>
<context>
<name>MyTextEditorWidget</name>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="35"/>
<source>Save as...</source>
<translation>另存為...</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="36"/>
<source>Copy</source>
<translation>複製</translation>
</message>
<message>
<location filename="../../MyTextEditorWidget.cpp" line="43"/>
<source>Save as</source>
<translation>另存為</translation>
</message>
</context>
<context>
<name>ObjectBrowserDialog</name>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="14"/>
<source>Object Browser</source>
<translation>物件瀏覽器</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="38"/>
<source>Inspect</source>
<translation>檢查</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="58"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.ui" line="65"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="23"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="24"/>
<source>Type</source>
<translation>類型</translation>
</message>
<message>
<location filename="../../ObjectBrowserDialog.cpp" line="119"/>
<source>Object Inspection</source>
<translation>物件檢查</translation>
</message>
</context>
<context>
<name>PushDialog</name>
<message>
<location filename="../../PushDialog.ui" line="14"/>
<source>Push</source>
<translation>推送</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="20"/>
<source>push --set-upstream</source>
<translation>push --set-upstream</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="26"/>
<source>Remote</source>
<translation>遠端</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="33"/>
<source>Branch</source>
<translation>分支</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="64"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../PushDialog.ui" line="71"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>RebaseOntoDialog</name>
<message>
<source>Branch</source>
<translation type="vanished">分支</translation>
</message>
<message>
<source>Cancel</source>
<translation type="vanished">取消</translation>
</message>
</context>
<context>
<name>ReflogWindow</name>
<message>
<location filename="../../ReflogWindow.ui" line="14"/>
<source>Reflog</source>
<translation></translation>
</message>
<message>
<location filename="../../ReflogWindow.ui" line="57"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="35"/>
<source>Commit</source>
<translation>提交</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="36"/>
<source>Head</source>
<translation></translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="37"/>
<source>Command</source>
<translation>指令</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="38"/>
<source>Message</source>
<translation>訊息</translation>
</message>
<message>
<source>Comment</source>
<translation type="vanished">備註</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="98"/>
<source>Checkout</source>
<translation>簽出</translation>
</message>
<message>
<location filename="../../ReflogWindow.cpp" line="99"/>
<source>Explorer</source>
<translation>瀏覽器</translation>
</message>
</context>
+<context>
+ <name>RemoteAdvancedOptionWidget</name>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="14"/>
+ <source>Form</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="32"/>
+ <source>Advanced Option</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="38"/>
+ <source>SSH key override...</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.ui" line="45"/>
+ <source>Clear</source>
+ <translation type="unfinished">清除</translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="24"/>
+ <source>SSH command is not registered.</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../../RemoteAdvancedOptionWidget.cpp" line="30"/>
+ <source>SSH key override</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>RemoteRepositoriesTableWidget</name>
<message>
<location filename="../../RemoteRepositoriesTableWidget.cpp" line="27"/>
<source>Copy URL</source>
<translation>複製網址</translation>
</message>
</context>
<context>
<name>RepositoryPropertyDialog</name>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="14"/>
<source>Repository Property</source>
<oldsource>Repository Properties</oldsource>
<translation>儲存庫內容</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="65"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="95"/>
<source>Local dir :</source>
<translation>本地資料夾 :</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="114"/>
<source>Remote URLs</source>
<translation>遠端網址</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="124"/>
<source>Remote</source>
<translation>遠端</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="130"/>
<source>Add</source>
<translation>新增</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="137"/>
<source>Edit</source>
<translation>編輯</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="157"/>
<source>Remove</source>
<translation>移除</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="169"/>
<source>&amp;Remote menu</source>
<translation>遠端選單(&amp;R)</translation>
</message>
<message>
<location filename="../../RepositoryPropertyDialog.ui" line="189"/>
<source>Close</source>
<translation>關閉</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Confirm Remove</source>
<translation>確定移除</translation>
</message>
<message>
- <location filename="../../RepositoryPropertyDialog.cpp" line="131"/>
+ <location filename="../../RepositoryPropertyDialog.cpp" line="155"/>
<source>Are you sure you want to remove the remote &apos;%1&apos; from the repository &apos;%2&apos; ?</source>
<translation>確定要從儲存庫「%2」中移除遠端「%1」嗎?</translation>
</message>
</context>
<context>
<name>SearchFromGitHubDialog</name>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="14"/>
<source>Search From GitHub</source>
<translation>從GitHub搜尋</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="25"/>
<source>Search</source>
<translation>搜尋</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="78"/>
<source>ssh</source>
<translation>ssh</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="88"/>
<source>http</source>
<translation>http</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="115"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.ui" line="122"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="56"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="57"/>
<source>Owner</source>
<translation>擁有者</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="58"/>
<source>Score</source>
<translation>範圍</translation>
</message>
<message>
<location filename="../../SearchFromGitHubDialog.cpp" line="59"/>
<source>Description</source>
<translation>描述</translation>
</message>
</context>
<context>
<name>SelectCommandDialog</name>
<message>
<location filename="../../SelectCommandDialog.ui" line="14"/>
<source>Select git command</source>
<translation>選擇git指令</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="20"/>
<source>TextLabel</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="32"/>
<source>&amp;Browse...</source>
<translation>瀏覽(&amp;B)...</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="52"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.ui" line="59"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="29"/>
<source>Please select the &apos;%1&apos; command you want to use.</source>
<translation>請選擇想使用的&apos;%1&apos; 指令。</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="58"/>
<location filename="../../SelectCommandDialog.cpp" line="65"/>
<source>%1 command (%2);;</source>
<translation>%1 指令 (%2);;</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="60"/>
<source>Executable files (*.exe)</source>
<translation>執行檔 (*.exe)</translation>
</message>
<message>
<location filename="../../SelectCommandDialog.cpp" line="71"/>
<source>%1 command</source>
<translation>%1 指令</translation>
</message>
</context>
<context>
<name>SelectGpgKeyDialog</name>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="14"/>
<source>Select GPG Key</source>
<translation>選擇GPG金鑰</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="57"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.ui" line="64"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="31"/>
<source>ID</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="32"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../SelectGpgKeyDialog.cpp" line="33"/>
<source>Mail</source>
<translation>電子郵件</translation>
</message>
</context>
<context>
<name>SelectItemDialog</name>
<message>
<location filename="../../SelectItemDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="25"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SelectItemDialog.ui" line="32"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>SetGlobalUserDialog</name>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="14"/>
<source>Global User Setting</source>
<translation>全域使用者設定</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="31"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="41"/>
<source>Mail</source>
<translation>電子郵件</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="68"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SetGlobalUserDialog.ui" line="78"/>
<source>Skip</source>
<translation>略過</translation>
</message>
</context>
<context>
<name>SetGpgSigningDialog</name>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="14"/>
<source>Set GPG Signing</source>
<translation>設定GPG簽名</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="26"/>
<source>Global</source>
<translation>全域</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="39"/>
<location filename="../../SetGpgSigningDialog.cpp" line="29"/>
<source>Repository</source>
<translation>儲存庫</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="61"/>
<source>ID</source>
<translation>ID</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="71"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="81"/>
<source>Mail</source>
<translation>電子郵件</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="93"/>
<source>Select</source>
<translation>選擇</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="113"/>
<source>Clear</source>
<translation>清除</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="127"/>
<source>Configure...</source>
<translation>設定...</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="147"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SetGpgSigningDialog.ui" line="154"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>SetRemoteUrlDialog</name>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="14"/>
<source>Set Remote URL</source>
<translation>設定遠端網址</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="20"/>
<source>Current URLs</source>
<translation>目前網址</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="30"/>
<source>New URL</source>
<translation>新網址</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="36"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="91"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="98"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="43"/>
<source>URL</source>
<translation>網址</translation>
</message>
<message>
<location filename="../../SetRemoteUrlDialog.ui" line="63"/>
<source>&amp;Test</source>
<translation>測試(&amp;T)</translation>
</message>
</context>
<context>
<name>SetUserDialog</name>
<message>
<location filename="../../SetUserDialog.ui" line="14"/>
<source>Set User</source>
<translation>設定使用者</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="20"/>
<source>Global</source>
<translation>全域</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="27"/>
<location filename="../../SetUserDialog.cpp" line="31"/>
<source>Repository</source>
<translation>儲存庫</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="42"/>
<source>Name</source>
<translation>名稱</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="52"/>
<source>Mail</source>
<translation>電子郵件</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="66"/>
<source>Get icon from Gravatar</source>
<translation>從Gravatar獲得圖案</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="122"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SetUserDialog.ui" line="132"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>SettingBehaviorForm</name>
<message>
<location filename="../../SettingBehaviorForm.ui" line="14"/>
<source>Behavior</source>
<translation>行為</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="20"/>
<location filename="../../SettingBehaviorForm.cpp" line="43"/>
<source>Default working folder</source>
<translation>預設工作資料夾</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="29"/>
<source>Browse...</source>
<translation>瀏覽...</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="39"/>
<source>Automatically fetch when opening the repository</source>
<translation>開啟儲存庫時自動fetch</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="46"/>
<source>Get committer&apos;s icon from gravatar.com</source>
<translation>從Gravatar獲得圖案</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="61"/>
<source>Maximum number of commit item acquisitions</source>
<translation>最大獲取的提交數量</translation>
</message>
<message>
<source>Watch remote changes periodically</source>
<oldsource>Periodically watch remote updates</oldsource>
<translation type="vanished">定期檢查遠端的變更</translation>
</message>
<message>
<source>interval</source>
<oldsource>interval in min:</oldsource>
<translation type="vanished">間隔</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="94"/>
<source>GPG signing policy</source>
<oldsource>GPG Signing Policy</oldsource>
<translation>GPG簽名政策</translation>
</message>
<message>
<location filename="../../SettingBehaviorForm.ui" line="101"/>
<source>Configure...</source>
<translation>設定...</translation>
</message>
<message>
<source>Disable</source>
<translation type="vanished">停用</translation>
</message>
<message>
<source>1 min</source>
<translation type="vanished">1分</translation>
</message>
<message>
<source>%1 mins</source>
<translation type="vanished">%1分</translation>
</message>
</context>
<context>
<name>SettingExampleForm</name>
<message>
<location filename="../../SettingExampleForm.ui" line="14"/>
<source>Example</source>
<translation>範例</translation>
</message>
<message>
<location filename="../../SettingExampleForm.ui" line="20"/>
<source>Underconstruction</source>
<translation>正在施工</translation>
</message>
</context>
<context>
<name>SettingGeneralForm</name>
<message>
<location filename="../../SettingGeneralForm.ui" line="14"/>
<source>General</source>
<translation>一般設定</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="20"/>
<source>Language</source>
<translation>語言</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="31"/>
<source>Change Language...</source>
<translation>選擇語言...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="54"/>
<source>Change Theme...</source>
<translation>選擇主題...</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="66"/>
<source>Remember and restore window position</source>
<translation>記住並恢復視窗位置</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="73"/>
<source>Enable high DPI scaling</source>
<translation>啟用高解析度螢幕縮放</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="43"/>
<source>Theme</source>
<translation>主題</translation>
</message>
<message>
<source>English</source>
<translation type="vanished">英文</translation>
</message>
<message>
<source>Japanese</source>
<translation type="vanished">日語</translation>
</message>
<message>
<source>Russian</source>
<translation type="vanished">俄文</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="19"/>
<source>Standard</source>
<translation>標準</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="20"/>
<source>Dark</source>
<translation>暗</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="82"/>
<source>Select Language</source>
<translation>選擇語言</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.cpp" line="106"/>
<source>Select Theme</source>
<translation>選擇主題</translation>
</message>
<message>
<location filename="../../SettingGeneralForm.ui" line="93"/>
<source>(Changes are applied at next run)</source>
<translation>(此設定必須下次執行時才會套用)</translation>
</message>
</context>
<context>
<name>SettingNetworkForm</name>
<message>
<location filename="../../SettingNetworkForm.ui" line="14"/>
<source>Network</source>
<translation>網路</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="20"/>
<source>Proxy server</source>
<oldsource>Proxy Server</oldsource>
<translation>代理伺服器</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="26"/>
<source>No proxy</source>
<oldsource>No Proxy</oldsource>
<translation>無代理伺服器</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="33"/>
<source>Auto detect</source>
<oldsource>Auto Detect</oldsource>
<translation>自動偵測</translation>
</message>
<message>
<location filename="../../SettingNetworkForm.ui" line="40"/>
<source>Manual</source>
<translation>手動</translation>
</message>
</context>
<context>
<name>SettingProgramsForm</name>
<message>
<location filename="../../SettingProgramsForm.ui" line="14"/>
<source>Programs</source>
<translation>程式</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="20"/>
<source>Git command</source>
<translation>Git指令</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="29"/>
<location filename="../../SettingProgramsForm.ui" line="48"/>
<location filename="../../SettingProgramsForm.ui" line="67"/>
+ <location filename="../../SettingProgramsForm.ui" line="86"/>
<source>Browse...</source>
<translation>瀏覽...</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="39"/>
<source>File command</source>
<translation>檔案總管指令</translation>
</message>
<message>
<location filename="../../SettingProgramsForm.ui" line="58"/>
<source>GPG command (option)</source>
<translation>GPG指令(可選)</translation>
</message>
+ <message>
+ <location filename="../../SettingProgramsForm.ui" line="77"/>
+ <source>SSH command (option)</source>
+ <translation type="unfinished"></translation>
+ </message>
</context>
<context>
<name>SettingsDialog</name>
<message>
<location filename="../../SettingsDialog.ui" line="14"/>
<source>Settings</source>
<translation>設定</translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="141"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../SettingsDialog.ui" line="148"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
</context>
<context>
<name>TextEditDialog</name>
<message>
<location filename="../../TextEditDialog.ui" line="14"/>
<source>Dialog</source>
<translation></translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="48"/>
<source>OK</source>
<translation>確定</translation>
</message>
<message>
<location filename="../../TextEditDialog.ui" line="58"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>&amp;Close</source>
<translation type="unfinished">關閉(&amp;C)</translation>
</message>
<message>
<location filename="../../TextEditDialog.cpp" line="29"/>
<source>Cacnel</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>WelcomeWizardDialog</name>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="14"/>
<source>Welcome to the Guitar Wizard</source>
<translation>歡迎使用Guitar設定精靈</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="45"/>
<source>Helper Tools</source>
<translation>助手工具</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="61"/>
<location filename="../../WelcomeWizardDialog.ui" line="338"/>
<source>git</source>
<translation>git</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="71"/>
<location filename="../../WelcomeWizardDialog.ui" line="88"/>
<location filename="../../WelcomeWizardDialog.ui" line="248"/>
<source>Browse</source>
<translation>瀏覽</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="78"/>
<location filename="../../WelcomeWizardDialog.ui" line="352"/>
<source>file</source>
<translation>檔案</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="120"/>
<source>Global User Information</source>
<translation>全域使用者訊息</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="142"/>
<source>git config --global user.name</source>
<translation>git config --global user.name</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="152"/>
<source>git config --global user.email</source>
<translation>git config --global user.email</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="168"/>
<source>Get icon from Gravatar</source>
<translation>從Gravatar獲得圖案</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="222"/>
<location filename="../../WelcomeWizardDialog.cpp" line="163"/>
<source>Default Working Folder</source>
<translation>預設工作資料夾</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="238"/>
<location filename="../../WelcomeWizardDialog.ui" line="324"/>
<source>folder</source>
<translation>資料夾</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="280"/>
<source>Ready to play the Guitar !</source>
<translation>Guitar已就緒!</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="296"/>
<source>user</source>
<translation>使用者</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="310"/>
<source>email</source>
<translation>電子郵件</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="426"/>
<location filename="../../WelcomeWizardDialog.cpp" line="155"/>
<source>&lt;&lt; Prev</source>
<translation>&lt;&lt; 上一步</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.ui" line="433"/>
<location filename="../../WelcomeWizardDialog.cpp" line="156"/>
<source>Next &gt;&gt;</source>
<translation>下一步 &gt;&gt;</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="126"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="../../WelcomeWizardDialog.cpp" line="152"/>
<source>Finish</source>
<translation>完成</translation>
</message>
</context>
</TS>

File Metadata

Mime Type
text/x-diff
Expires
Sat, Feb 7, 7:28 AM (1 d, 1 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
55880
Default Alt Text
(583 KB)

Event Timeline