本文整理汇总了Golang中github.com/twstrike/coyim/i18n.Local函数的典型用法代码示例。如果您正苦于以下问题:Golang Local函数的具体用法?Golang Local怎么用?Golang Local使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Local函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: buildStaticAccountsMenu
func (u *gtkUI) buildStaticAccountsMenu(submenu *gtk.Menu) {
connectAutomaticallyItem, _ := gtk.CheckMenuItemNewWithMnemonic(i18n.Local("Connect On _Startup"))
u.config.WhenLoaded(func(a *config.ApplicationConfig) {
connectAutomaticallyItem.SetActive(a.ConnectAutomatically)
})
connectAutomaticallyItem.Connect("activate", func() {
u.setConnectAllAutomatically(connectAutomaticallyItem.GetActive())
})
submenu.Append(connectAutomaticallyItem)
connectAllMenu, _ := gtk.MenuItemNewWithMnemonic(i18n.Local("_Connect All"))
connectAllMenu.Connect("activate", func() { u.connectAllAutomatics(true) })
submenu.Append(connectAllMenu)
sep2, _ := gtk.SeparatorMenuItemNew()
submenu.Append(sep2)
addAccMenu, _ := gtk.MenuItemNewWithMnemonic(i18n.Local("_Add..."))
addAccMenu.Connect("activate", u.showAddAccountWindow)
submenu.Append(addAccMenu)
importMenu, _ := gtk.MenuItemNewWithMnemonic(i18n.Local("_Import..."))
importMenu.Connect("activate", u.runImporter)
submenu.Append(importMenu)
registerAccMenu, _ := gtk.MenuItemNewWithMnemonic(i18n.Local("_Register..."))
registerAccMenu.Connect("activate", u.showServerSelectionWindow)
submenu.Append(registerAccMenu)
}
示例2: handlePeerEvent
func (u *gtkUI) handlePeerEvent(ev events.Peer) {
identityWarning := func(cv conversationView) {
cv.updateSecurityWarning()
cv.showIdentityVerificationWarning(u)
}
switch ev.Type {
case events.IQReceived:
//TODO
log.Printf("received iq: %v\n", ev.From)
case events.OTREnded:
peer := ev.From
account := u.findAccountForSession(ev.Session)
convWindowNowOrLater(account, peer, func(cv conversationView) {
cv.displayNotification(i18n.Local("Private conversation lost."))
cv.updateSecurityWarning()
})
case events.OTRNewKeys:
peer := ev.From
account := u.findAccountForSession(ev.Session)
convWindowNowOrLater(account, peer, func(cv conversationView) {
cv.displayNotificationVerifiedOrNot(i18n.Local("Private conversation started."), i18n.Local("Unverified conversation started."))
identityWarning(cv)
})
case events.OTRRenewedKeys:
peer := ev.From
account := u.findAccountForSession(ev.Session)
convWindowNowOrLater(account, peer, func(cv conversationView) {
cv.displayNotificationVerifiedOrNot(i18n.Local("Successfully refreshed the private conversation."), i18n.Local("Successfully refreshed the unverified private conversation."))
identityWarning(cv)
})
case events.SubscriptionRequest:
confirmDialog := authorizePresenceSubscriptionDialog(&u.window.Window, ev.From)
doInUIThread(func() {
responseType := gtk.ResponseType(confirmDialog.Run())
switch responseType {
case gtk.RESPONSE_YES:
ev.Session.HandleConfirmOrDeny(ev.From, true)
case gtk.RESPONSE_NO:
ev.Session.HandleConfirmOrDeny(ev.From, false)
default:
// We got a different response, such as a close of the window. In this case we want
// to keep the subscription request open
}
confirmDialog.Destroy()
})
case events.Subscribed:
jid := ev.Session.GetConfig().Account
log.Printf("[%s] Subscribed to %s\n", jid, ev.From)
u.rosterUpdated()
case events.Unsubscribe:
jid := ev.Session.GetConfig().Account
log.Printf("[%s] Unsubscribed from %s\n", jid, ev.From)
u.rosterUpdated()
}
}
示例3: addContactWindow
func (u *gtkUI) addContactWindow() {
accounts := make([]*account, 0, len(u.accounts))
for i := range u.accounts {
acc := u.accounts[i]
if acc.connected() {
accounts = append(accounts, acc)
}
}
dialog := presenceSubscriptionDialog(accounts, func(accountID, peer string) error {
//TODO errors
account, ok := u.roster.getAccount(accountID)
if !ok {
return fmt.Errorf(i18n.Local("There is no account with the id %q"), accountID)
}
if !account.connected() {
return errors.New(i18n.Local("Can't send a contact request from an offline account"))
}
return account.session.RequestPresenceSubscription(peer)
})
dialog.SetTransientFor(u.window)
dialog.ShowAll()
}
示例4: showAddAccountWindow
func (u *gtkUI) showAddAccountWindow() {
c, _ := config.NewAccount()
u.accountDialog(nil, c, func() {
u.addAndSaveAccountConfig(c)
u.notify(i18n.Local("Account added"), fmt.Sprintf(i18n.Local("The account %s was added successfully."), c.Account))
})
}
示例5: onStartOtrSignal
func (conv *conversationPane) onStartOtrSignal() {
//TODO: enable/disable depending on the conversation's encryption state
session := conv.account.session
c, _ := session.ConversationManager().EnsureConversationWith(conv.to, conv.currentResource())
err := c.StartEncryptedChat(session, conv.currentResource())
if err != nil {
log.Printf(i18n.Local("Failed to start encrypted chat: %s\n"), err.Error())
} else {
conv.displayNotification(i18n.Local("Attempting to start a private conversation..."))
}
}
示例6: getMasterPassword
func (u *gtkUI) getMasterPassword(params config.EncryptionParameters, lastAttemptFailed bool) ([]byte, []byte, bool) {
dialogID := "MasterPassword"
pwdResultChan := make(chan string)
var cleanup func()
doInUIThread(func() {
builder := newBuilder(dialogID)
dialogOb := builder.getObj(dialogID)
dialog := dialogOb.(gtki.Dialog)
cleanup = dialog.Destroy
passObj := builder.getObj("password")
password := passObj.(gtki.Entry)
msgObj := builder.getObj("passMessage")
messageObj := msgObj.(gtki.Label)
messageObj.SetSelectable(true)
if lastAttemptFailed {
messageObj.SetLabel(i18n.Local("Incorrect password entered, please try again."))
}
builder.ConnectSignals(map[string]interface{}{
"on_save_signal": func() {
passText, _ := password.GetText()
if len(passText) > 0 {
messageObj.SetLabel(i18n.Local("Checking password..."))
pwdResultChan <- passText
close(pwdResultChan)
}
},
"on_cancel_signal": func() {
close(pwdResultChan)
u.quit()
},
})
dialog.SetTransientFor(u.window)
dialog.ShowAll()
})
pwd, ok := <-pwdResultChan
if !ok {
doInUIThread(cleanup)
return nil, nil, false
}
l, r := config.GenerateKeys(pwd, params)
doInUIThread(cleanup)
return l, r, true
}
示例7: onEndOtrSignal
func (conv *conversationPane) onEndOtrSignal() {
//TODO: enable/disable depending on the conversation's encryption state
session := conv.account.session
err := session.ManuallyEndEncryptedChat(conv.to, conv.currentResource())
if err != nil {
log.Printf(i18n.Local("Failed to terminate the encrypted chat: %s\n"), err.Error())
} else {
conv.displayNotification(i18n.Local("Private conversation has ended."))
conv.updateSecurityWarning()
}
}
示例8: createStatusMessage
func createStatusMessage(from string, show, showStatus string, gone bool) string {
tail := ""
if gone {
tail = i18n.Local("Offline") + extraOfflineStatus(show, showStatus)
} else {
tail = onlineStatus(show, showStatus)
}
if tail != "" {
return from + i18n.Local(" is now ") + tail
}
return ""
}
示例9: showAddAccountWindow
func (u *gtkUI) showAddAccountWindow() error {
c, err := config.NewAccount()
if err != nil {
return err
}
u.accountDialog(nil, c, func() {
u.addAndSaveAccountConfig(c)
u.notify(i18n.Local("Account added"), fmt.Sprintf(i18n.Local("The account %s was added successfully."), c.Account))
})
return nil
}
示例10: HandleErrorMessage
// HandleErrorMessage is called when asked to handle a specific error message
func (e *OtrEventHandler) HandleErrorMessage(error otr3.ErrorCode) []byte {
log.Printf("HandleErrorMessage(%s)", error.String())
switch error {
case otr3.ErrorCodeEncryptionError:
return []byte(i18n.Local("Error occurred encrypting message."))
case otr3.ErrorCodeMessageUnreadable:
return []byte(i18n.Local("You transmitted an unreadable encrypted message."))
case otr3.ErrorCodeMessageMalformed:
return []byte(i18n.Local("You transmitted a malformed data message."))
case otr3.ErrorCodeMessageNotInPrivate:
return []byte(i18n.Local("You sent encrypted data to a peer, who wasn't expecting it."))
}
return nil
}
示例11: createXMLConsoleItem
func (account *account) createXMLConsoleItem(r *roster) gtki.MenuItem {
consoleItem, _ := g.gtk.MenuItemNewWithMnemonic(i18n.Local("XML Console"))
consoleItem.Connect("activate", func() {
builder := newBuilder("XMLConsole")
console := builder.getObj("XMLConsole").(gtki.Dialog)
buf := builder.getObj("consoleContent").(gtki.TextBuffer)
console.SetTransientFor(r.ui.window)
console.SetTitle(strings.Replace(console.GetTitle(), "ACCOUNT_NAME", account.session.GetConfig().Account, -1))
log := account.session.GetInMemoryLog()
buf.Delete(buf.GetStartIter(), buf.GetEndIter())
if log != nil {
buf.Insert(buf.GetEndIter(), log.String())
}
builder.ConnectSignals(map[string]interface{}{
"on_refresh_signal": func() {
buf.Delete(buf.GetStartIter(), buf.GetEndIter())
if log != nil {
buf.Insert(buf.GetEndIter(), log.String())
}
},
"on_close_signal": func() {
console.Destroy()
},
})
console.ShowAll()
})
return consoleItem
}
示例12: createDumpInfoItem
func (account *account) createDumpInfoItem(r *roster) gtki.MenuItem {
dumpInfoItem, _ := g.gtk.MenuItemNewWithMnemonic(i18n.Local("Dump info"))
dumpInfoItem.Connect("activate", func() {
r.debugPrintRosterFor(account.session.GetConfig().Account)
})
return dumpInfoItem
}
示例13: buildNotification
func (account *account) buildNotification(template, msg string) *gtk.InfoBar {
builder := builderForDefinition(template)
builder.ConnectSignals(map[string]interface{}{
"handleResponse": func(info *gtk.InfoBar, response gtk.ResponseType) {
if response != gtk.RESPONSE_CLOSE {
return
}
info.Hide()
info.Destroy()
},
})
obj, _ := builder.GetObject("infobar")
infoBar := obj.(*gtk.InfoBar)
obj, _ = builder.GetObject("message")
msgLabel := obj.(*gtk.Label)
msgLabel.SetSelectable(true)
text := fmt.Sprintf(i18n.Local(msg), account.session.GetConfig().Account)
msgLabel.SetText(text)
return infoBar
}
示例14: watchCommands
func (u *gtkUI) watchCommands() {
for command := range u.commands {
switch c := command.(type) {
case executable:
c.execute(u)
case client.AuthorizeFingerprintCmd:
account := c.Account
uid := c.Peer
fpr := c.Fingerprint
//TODO: it could be a different pointer,
//find the account by ID()
account.AuthorizeFingerprint(uid, fpr)
u.ExecuteCmd(client.SaveApplicationConfigCmd{})
ac := u.findAccountForSession(c.Session.(access.Session))
if ac != nil {
peer := c.Peer
convWindowNowOrLater(ac, peer, u, func(cv conversationView) {
cv.displayNotification(fmt.Sprintf(i18n.Local("You have verified the identity of %s."), peer))
})
}
case client.SaveInstanceTagCmd:
account := c.Account
account.InstanceTag = c.InstanceTag
u.ExecuteCmd(client.SaveApplicationConfigCmd{})
case client.SaveApplicationConfigCmd:
u.SaveConfig()
}
}
}
示例15: buildVerifyIdentityNotification
func buildVerifyIdentityNotification(acc *account, peer, resource string, win gtki.Window) gtki.InfoBar {
builder := newBuilder("VerifyIdentityNotification")
obj := builder.getObj("infobar")
infoBar := obj.(gtki.InfoBar)
obj = builder.getObj("message")
message := obj.(gtki.Label)
message.SetSelectable(true)
text := fmt.Sprintf(i18n.Local("You have not verified the identity of %s"), peer)
message.SetText(text)
obj = builder.getObj("button_verify")
button := obj.(gtki.Button)
button.Connect("clicked", func() {
doInUIThread(func() {
resp := verifyFingerprintDialog(acc, peer, resource, win)
if resp == gtki.RESPONSE_YES {
infoBar.Hide()
infoBar.Destroy()
}
})
})
infoBar.ShowAll()
return infoBar
}