[PATCH 2/3] Added translation contexts to the GUI.

David Shea dshea at redhat.com
Fri Oct 18 15:50:53 UTC 2013


Every string that contains keyboard accelerators gets a context. The
context strings used are (roughly) of the form:

  GUI|<window name>[|<dialog name>][|<GtkNotebook name>]...
---
 pyanaconda/ui/gui/hubs/__init__.py              |  5 +-
 pyanaconda/ui/gui/hubs/progress.glade           |  4 +-
 pyanaconda/ui/gui/hubs/progress.py              |  4 +-
 pyanaconda/ui/gui/hubs/summary.glade            |  4 +-
 pyanaconda/ui/gui/spokes/advanced_user.glade    | 12 ++---
 pyanaconda/ui/gui/spokes/advstorage/fcoe.glade  |  8 +--
 pyanaconda/ui/gui/spokes/advstorage/iscsi.glade | 42 ++++++++--------
 pyanaconda/ui/gui/spokes/custom.glade           | 66 ++++++++++++-------------
 pyanaconda/ui/gui/spokes/custom.py              | 13 +++--
 pyanaconda/ui/gui/spokes/datetime_spoke.glade   | 10 ++--
 pyanaconda/ui/gui/spokes/datetime_spoke.py      |  4 +-
 pyanaconda/ui/gui/spokes/filter.glade           | 50 +++++++++----------
 pyanaconda/ui/gui/spokes/filter.py              |  7 +--
 pyanaconda/ui/gui/spokes/keyboard.glade         | 14 +++---
 pyanaconda/ui/gui/spokes/keyboard.py            |  4 +-
 pyanaconda/ui/gui/spokes/langsupport.py         |  4 +-
 pyanaconda/ui/gui/spokes/lib/cart.glade         |  8 +--
 pyanaconda/ui/gui/spokes/lib/cart.py            |  8 +--
 pyanaconda/ui/gui/spokes/lib/detailederror.py   |  6 +--
 pyanaconda/ui/gui/spokes/lib/passphrase.glade   |  6 +--
 pyanaconda/ui/gui/spokes/lib/refresh.glade      |  2 +-
 pyanaconda/ui/gui/spokes/lib/resize.glade       | 10 ++--
 pyanaconda/ui/gui/spokes/lib/resize.py          |  8 +--
 pyanaconda/ui/gui/spokes/lib/summary.glade      |  4 +-
 pyanaconda/ui/gui/spokes/network.glade          | 34 ++++++-------
 pyanaconda/ui/gui/spokes/network.py             |  8 +--
 pyanaconda/ui/gui/spokes/password.glade         |  4 +-
 pyanaconda/ui/gui/spokes/password.py            |  4 +-
 pyanaconda/ui/gui/spokes/software.py            | 12 +++--
 pyanaconda/ui/gui/spokes/source.glade           | 54 ++++++++++----------
 pyanaconda/ui/gui/spokes/source.py              |  4 +-
 pyanaconda/ui/gui/spokes/storage.glade          | 28 +++++------
 pyanaconda/ui/gui/spokes/storage.py             | 26 ++++++----
 pyanaconda/ui/gui/spokes/user.glade             | 14 +++---
 pyanaconda/ui/gui/spokes/user.py                |  4 +-
 pyanaconda/ui/gui/spokes/welcome.glade          |  8 +--
 36 files changed, 259 insertions(+), 244 deletions(-)

diff --git a/pyanaconda/ui/gui/hubs/__init__.py b/pyanaconda/ui/gui/hubs/__init__.py
index b7a6b64..56841d5 100644
--- a/pyanaconda/ui/gui/hubs/__init__.py
+++ b/pyanaconda/ui/gui/hubs/__init__.py
@@ -24,7 +24,7 @@ import os
 from gi.repository import GLib
 
 from pyanaconda.flags import flags
-from pyanaconda.i18n import _
+from pyanaconda.i18n import _, C_
 from pyanaconda.product import distributionText
 
 from pyanaconda.ui import common
@@ -202,7 +202,8 @@ class Hub(GUIObject, common.Hub):
                     spoke.initialize()
                     continue
 
-                spoke.selector = AnacondaWidgets.SpokeSelector(_(spoke.title), spoke.icon)
+                spoke.selector = AnacondaWidgets.SpokeSelector(C_("GUI|Spoke", spoke.title),
+                        spoke.icon)
 
                 # Set all selectors to insensitive before initialize runs.  The call to
                 # _updateCompleteness later will take care of setting it straight.
diff --git a/pyanaconda/ui/gui/hubs/progress.glade b/pyanaconda/ui/gui/hubs/progress.glade
index cb52685..03de3ab 100644
--- a/pyanaconda/ui/gui/hubs/progress.glade
+++ b/pyanaconda/ui/gui/hubs/progress.glade
@@ -138,7 +138,7 @@
                             </child>
                             <child>
                               <object class="GtkButton" id="configureButton">
-                                <property name="label" translatable="yes">_Finish configuration</property>
+                                <property name="label" translatable="yes" context="GUI|Progress">_Finish configuration</property>
                                 <property name="use_action_appearance">False</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
@@ -191,7 +191,7 @@
                             </child>
                             <child>
                               <object class="GtkButton" id="rebootButton">
-                                <property name="label" translatable="yes">_Reboot</property>
+                                <property name="label" translatable="yes" context="GUI|Progress">_Reboot</property>
                                 <property name="use_action_appearance">False</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
diff --git a/pyanaconda/ui/gui/hubs/progress.py b/pyanaconda/ui/gui/hubs/progress.py
index 79daeee..55f7261 100644
--- a/pyanaconda/ui/gui/hubs/progress.py
+++ b/pyanaconda/ui/gui/hubs/progress.py
@@ -28,7 +28,7 @@ import os
 import sys
 import glob
 
-from pyanaconda.i18n import _
+from pyanaconda.i18n import _, C_
 from pyanaconda.localization import find_best_locale_match
 from pyanaconda.product import productName
 from pyanaconda.flags import flags
@@ -200,7 +200,7 @@ class ProgressHub(Hub):
             continueText.set_text(_("%s is now successfully installed on your system and ready "
                                     "for you to use!  When you are ready, reboot your system to start using it!"))
             continueText.set_line_wrap(True)
-            self.continueButton.set_label(_("_Quit"))
+            self.continueButton.set_label(C_("GUI|Progress", "_Quit"))
 
         self._progressBar = self.builder.get_object("progressBar")
         self._progressLabel = self.builder.get_object("progressLabel")
diff --git a/pyanaconda/ui/gui/hubs/summary.glade b/pyanaconda/ui/gui/hubs/summary.glade
index a553102..54c3e9d 100644
--- a/pyanaconda/ui/gui/hubs/summary.glade
+++ b/pyanaconda/ui/gui/hubs/summary.glade
@@ -73,7 +73,7 @@
             <property name="margin_right">6</property>
             <child>
               <object class="GtkButton" id="quitButton">
-                <property name="label" translatable="yes">_Quit</property>
+                <property name="label" translatable="yes" context="GUI|Summary">_Quit</property>
                 <property name="use_action_appearance">False</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -91,7 +91,7 @@
             </child>
             <child>
               <object class="GtkButton" id="continueButton">
-                <property name="label" translatable="yes">_Begin Installation</property>
+                <property name="label" translatable="yes" context="GUI|Summary">_Begin Installation</property>
                 <property name="use_action_appearance">False</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
diff --git a/pyanaconda/ui/gui/spokes/advanced_user.glade b/pyanaconda/ui/gui/spokes/advanced_user.glade
index 05a352b..c1e7314 100644
--- a/pyanaconda/ui/gui/spokes/advanced_user.glade
+++ b/pyanaconda/ui/gui/spokes/advanced_user.glade
@@ -31,7 +31,7 @@
             </child>
             <child>
               <object class="GtkButton" id="save_button">
-                <property name="label" translatable="yes">_Save Changes</property>
+                <property name="label" translatable="yes" context="GUI|Advanced User">_Save Changes</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -100,7 +100,7 @@
                 <property name="orientation">vertical</property>
                 <child>
                   <object class="GtkCheckButton" id="c_home">
-                    <property name="label" translatable="yes">Create a _home directory for this user.</property>
+                    <property name="label" translatable="yes" context="GUI|Advanced User">Create a _home directory for this user.</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -127,7 +127,7 @@
                         <property name="visible">True</property>
                         <property name="sensitive">False</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Home _directory:</property>
+                        <property name="label" translatable="yes" context="GUI|Advanced User">Home _directory:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">t_home</property>
                       </object>
@@ -190,7 +190,7 @@
                 <property name="margin_top">3</property>
                 <child>
                   <object class="GtkCheckButton" id="c_uid">
-                    <property name="label" translatable="yes">Specify a _user ID manually:</property>
+                    <property name="label" translatable="yes" context="GUI|Advanced User">Specify a _user ID manually:</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -208,7 +208,7 @@
                 </child>
                 <child>
                   <object class="GtkCheckButton" id="c_gid">
-                    <property name="label" translatable="yes">Specify a _group ID manually:</property>
+                    <property name="label" translatable="yes" context="GUI|Advanced User">Specify a _group ID manually:</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -295,7 +295,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">_Add user to the following groups:</property>
+                    <property name="label" translatable="yes" context="GUI|Advanced User">_Add user to the following groups:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">t_groups</property>
                   </object>
diff --git a/pyanaconda/ui/gui/spokes/advstorage/fcoe.glade b/pyanaconda/ui/gui/spokes/advstorage/fcoe.glade
index 47d514f..39c8b7b 100644
--- a/pyanaconda/ui/gui/spokes/advstorage/fcoe.glade
+++ b/pyanaconda/ui/gui/spokes/advstorage/fcoe.glade
@@ -66,7 +66,7 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="xalign">0</property>
-                <property name="label" translatable="yes">_NIC:</property>
+                <property name="label" translatable="yes" context="GUI|Advanced Storage|FCoE">_NIC:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">nicCombo</property>
               </object>
@@ -94,7 +94,7 @@
             </child>
             <child>
               <object class="GtkCheckButton" id="dcbCheckbox">
-                <property name="label" translatable="yes">Use _DCB</property>
+                <property name="label" translatable="yes" context="GUI|Advanced Storage|FCoE">Use _DCB</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
@@ -111,7 +111,7 @@
             </child>
             <child>
               <object class="GtkCheckButton" id="autoCheckbox">
-                <property name="label" translatable="yes">Use auto _vlan</property>
+                <property name="label" translatable="yes" context="GUI|Advanced Storage|FCoE">Use auto _vlan</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
@@ -148,7 +148,7 @@
                 </child>
                 <child>
                   <object class="GtkButton" id="addButton">
-                    <property name="label" translatable="yes">_Add FCoE Disk(s)</property>
+                    <property name="label" translatable="yes" context="GUI|Advanced Storage|FCoE">_Add FCoE Disk(s)</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/advstorage/iscsi.glade b/pyanaconda/ui/gui/spokes/advstorage/iscsi.glade
index 2e3ad63..0e44aa0 100644
--- a/pyanaconda/ui/gui/spokes/advstorage/iscsi.glade
+++ b/pyanaconda/ui/gui/spokes/advstorage/iscsi.glade
@@ -123,7 +123,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">_Target IP Address:</property>
+                        <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure">_Target IP Address:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">targetEntry</property>
                       </object>
@@ -154,7 +154,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">iSCSI _Initiator Name:</property>
+                        <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure">iSCSI _Initiator Name:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">initiatorEntry</property>
                       </object>
@@ -192,7 +192,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">_Discovery Authentication Type:</property>
+                        <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure">_Discovery Authentication Type:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">authTypeCombo</property>
                       </object>
@@ -258,7 +258,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">CHAP _Username:</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|CHAP">CHAP _Username:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">chapUsernameEntry</property>
                               </object>
@@ -274,7 +274,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">CHAP _Password:</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|CHAP">CHAP _Password:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">chapPasswordEntry</property>
                               </object>
@@ -397,7 +397,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">CHAP _Username:</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|Reverse CHAP">CHAP _Username:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">rchapUsernameEntry</property>
                               </object>
@@ -413,7 +413,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">CHAP _Password:</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|Reverse CHAP">CHAP _Password:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">rchapPasswordEntry</property>
                               </object>
@@ -429,7 +429,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Reverse CHAP User_name:</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|Reverse CHAP">Reverse CHAP User_name:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">rchapReverseUsername</property>
                               </object>
@@ -445,7 +445,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
-                                <property name="label" translatable="yes">Reverse CHAP Pass_word:</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|Reverse CHAP">Reverse CHAP Pass_word:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">rchapReversePassword</property>
                               </object>
@@ -481,7 +481,7 @@
                         <property name="show_border">False</property>
                         <child>
                           <object class="GtkButton" id="startButton">
-                            <property name="label" translatable="yes">_Start Discovery</property>
+                            <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|Start">_Start Discovery</property>
                             <property name="visible">True</property>
                             <property name="sensitive">False</property>
                             <property name="can_focus">True</property>
@@ -603,7 +603,7 @@
                             </child>
                             <child>
                               <object class="GtkButton" id="retryButton">
-                                <property name="label" translatable="yes">_Retry Discovery</property>
+                                <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure|Retry">_Retry Discovery</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">True</property>
@@ -646,7 +646,7 @@
                     </child>
                     <child>
                       <object class="GtkCheckButton" id="bindCheckbutton">
-                        <property name="label" translatable="yes">_Bind targets to network interfaces</property>
+                        <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Configure">_Bind targets to network interfaces</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
@@ -764,7 +764,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">_Node login authentication type:</property>
+                            <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login">_Node login authentication type:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">loginAuthTypeCombo</property>
                           </object>
@@ -822,7 +822,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">CHAP _Username:</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|CHAP">CHAP _Username:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">loginChapUsernameEntry</property>
                                   </object>
@@ -838,7 +838,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">CHAP _Password:</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|CHAP">CHAP _Password:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">loginChapPasswordEntry</property>
                                   </object>
@@ -964,7 +964,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">CHAP _Username:</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|Reverse CHAP">CHAP _Username:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">loginRchapUsernameEntry</property>
                                   </object>
@@ -980,7 +980,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">CHAP _Password:</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|Reverse CHAP">CHAP _Password:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">loginRchapPasswordEntry</property>
                                   </object>
@@ -996,7 +996,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Reverse CHAP Username:</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|Reverse CHAP">_Reverse CHAP Username:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">loginRchapReverseUsername</property>
                                   </object>
@@ -1012,7 +1012,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">Reverse CHAP Pass_word:</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|Reverse CHAP">Reverse CHAP Pass_word:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">loginRchapReversePassword</property>
                                   </object>
@@ -1064,7 +1064,7 @@
                                 <property name="spacing">6</property>
                                 <child>
                                   <object class="GtkButton" id="loginButton">
-                                    <property name="label" translatable="yes">_Log In</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|Login">_Log In</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
@@ -1165,7 +1165,7 @@
                                 </child>
                                 <child>
                                   <object class="GtkButton" id="retryLoginButton">
-                                    <property name="label" translatable="yes">Retry _Log In</property>
+                                    <property name="label" translatable="yes" context="GUI|Advanced Storage|iSCSI|Login|Retry">Retry _Log In</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/custom.glade b/pyanaconda/ui/gui/spokes/custom.glade
index 608efdd..6be9e0e 100644
--- a/pyanaconda/ui/gui/spokes/custom.glade
+++ b/pyanaconda/ui/gui/spokes/custom.glade
@@ -19,7 +19,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="addCancelButton">
-                <property name="label" translatable="yes">_Cancel</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Add Dialog">_Cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -34,7 +34,7 @@
             </child>
             <child>
               <object class="GtkButton" id="addConfirmButton">
-                <property name="label" translatable="yes">_Add mount point</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Add Dialog">_Add mount point</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -67,7 +67,7 @@
                 <property name="can_focus">False</property>
                 <property name="margin_top">6</property>
                 <property name="xalign">1</property>
-                <property name="label" translatable="yes">_Desired Capacity:</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Add Dialog">_Desired Capacity:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">addSizeEntry</property>
                 <attributes>
@@ -86,7 +86,7 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="xalign">0</property>
-                <property name="label" translatable="yes">Mount _Point:</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Add Dialog">Mount _Point:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">addMountPointEntry</property>
                 <attributes>
@@ -283,7 +283,7 @@ use.  Try something else?</property>
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="deleteCancelButton">
-                <property name="label" translatable="yes">_Cancel</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Confirm Delete Dialog">_Cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="can_default">True</property>
@@ -299,7 +299,7 @@ use.  Try something else?</property>
             </child>
             <child>
               <object class="GtkButton" id="deleteConfirmButton">
-                <property name="label" translatable="yes">_Delete It</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Confirm Delete Dialog">_Delete It</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -343,7 +343,7 @@ use.  Try something else?</property>
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="container_cancel_button">
-                <property name="label" translatable="yes">_Cancel</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Container Dialog">_Cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -357,7 +357,7 @@ use.  Try something else?</property>
             </child>
             <child>
               <object class="GtkButton" id="container_save_button">
-                <property name="label" translatable="yes">_Save</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Container Dialog">_Save</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -422,7 +422,7 @@ use.  Try something else?</property>
                   <object class="GtkLabel" id="nameLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">_Name:</property>
+                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Container Dialog">_Name:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">container_name_entry</property>
                   </object>
@@ -647,7 +647,7 @@ use.  Try something else?</property>
                   <object class="GtkLabel" id="containerSizeLabel">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="label" translatable="yes">Si_ze policy:</property>
+                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Container Dialog">Si_ze policy:</property>
                     <property name="use_underline">True</property>
                     <property name="mnemonic_widget">containerSizeCombo</property>
                   </object>
@@ -881,7 +881,7 @@ use.  Try something else?</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">Mount _Point:</property>
+                                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">Mount _Point:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">mountPointEntry</property>
                                     <attributes>
@@ -916,7 +916,7 @@ use.  Try something else?</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Label:</property>
+                                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">_Label:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">labelEntry</property>
                                     <attributes>
@@ -950,7 +950,7 @@ use.  Try something else?</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Name:</property>
+                                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">_Name:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">nameEntry</property>
                                     <attributes>
@@ -984,7 +984,7 @@ use.  Try something else?</property>
                                     <property name="can_focus">False</property>
                                     <property name="halign">end</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Desired Capacity:</property>
+                                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">_Desired Capacity:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">sizeEntry</property>
                                     <attributes>
@@ -1025,7 +1025,7 @@ use.  Try something else?</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
                                         <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">Device _Type:</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">Device _Type:</property>
                                         <property name="use_underline">True</property>
                                         <property name="mnemonic_widget">deviceTypeCombo</property>
                                         <attributes>
@@ -1044,7 +1044,7 @@ use.  Try something else?</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
                                         <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">File S_ystem:</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">File S_ystem:</property>
                                         <property name="use_underline">True</property>
                                         <property name="mnemonic_widget">fileSystemTypeCombo</property>
                                         <attributes>
@@ -1101,7 +1101,7 @@ use.  Try something else?</property>
                                     </child>
                                     <child>
                                       <object class="GtkCheckButton" id="encryptCheckbox">
-                                        <property name="label" translatable="yes">_Encrypt</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">_Encrypt</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">False</property>
@@ -1120,7 +1120,7 @@ use.  Try something else?</property>
                                     </child>
                                     <child>
                                       <object class="GtkCheckButton" id="reformatCheckbox">
-                                        <property name="label" translatable="yes">Ref_ormat</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">Ref_ormat</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">False</property>
@@ -1142,7 +1142,7 @@ use.  Try something else?</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
                                         <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">Volume _Group:</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">Volume _Group:</property>
                                         <property name="use_underline">True</property>
                                         <property name="mnemonic_widget">containerCombo</property>
                                         <attributes>
@@ -1174,7 +1174,7 @@ use.  Try something else?</property>
                                     </child>
                                     <child>
                                       <object class="GtkButton" id="modifyContainerButton">
-                                        <property name="label" translatable="yes">_Modify...</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">_Modify...</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
@@ -1193,7 +1193,7 @@ use.  Try something else?</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
                                         <property name="xalign">0</property>
-                                        <property name="label" translatable="yes">RA_ID Level:</property>
+                                        <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">RA_ID Level:</property>
                                         <property name="use_underline">True</property>
                                         <property name="mnemonic_widget">raidLevelCombo</property>
                                         <attributes>
@@ -1247,7 +1247,7 @@ use.  Try something else?</property>
                             </child>
                             <child>
                               <object class="GtkButton" id="applyButton">
-                                <property name="label" translatable="yes">_Update Settings</property>
+                                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure">_Update Settings</property>
                                 <property name="visible">True</property>
                                 <property name="sensitive">False</property>
                                 <property name="can_focus">True</property>
@@ -1378,7 +1378,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                                   <object class="GtkLabel" id="passphraseLabel">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="label" translatable="yes">_Passphrase:</property>
+                                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Encrypted">_Passphrase:</property>
                                     <property name="use_underline">True</property>
                                     <attributes>
                                       <attribute name="font-desc" value="Cantarell 11"/>
@@ -1406,7 +1406,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                                 </child>
                                 <child>
                                   <object class="GtkButton" id="unlockButton">
-                                    <property name="label" translatable="yes">_Unlock</property>
+                                    <property name="label" translatable="yes" context="GUI|Custom Partitioning|Encrypted">_Unlock</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
@@ -1634,7 +1634,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="tooltip_text" translatable="yes">Add a new mountpoint.</property>
-                            <property name="label" translatable="yes">_Add</property>
+                            <property name="label" translatable="yes" context="GUI|Custom Partitioning">_Add</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">list-add-symbolic</property>
                             <signal name="clicked" handler="on_add_clicked" swapped="no"/>
@@ -1651,7 +1651,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="tooltip_text" translatable="yes">Remove the selected mountpoint(s).</property>
-                            <property name="label" translatable="yes">Remo_ve</property>
+                            <property name="label" translatable="yes" context="GUI|Custom Partitioning">Remo_ve</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">list-remove-symbolic</property>
                             <signal name="clicked" handler="on_remove_clicked" swapped="no"/>
@@ -1668,7 +1668,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="tooltip_text" translatable="yes">Configure selected mountpoint.</property>
-                            <property name="label" translatable="yes">_Configure</property>
+                            <property name="label" translatable="yes" context="GUI|Custom Partitioning">_Configure</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">preferences-system-symbolic</property>
                             <signal name="clicked" handler="on_configure_clicked" swapped="no"/>
@@ -1685,7 +1685,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="tooltip_text" translatable="yes">Reload storage configuration from disk.</property>
-                            <property name="label" translatable="yes">Re_fresh</property>
+                            <property name="label" translatable="yes" context="GUI|Custom Partitioning">Re_fresh</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">view-refresh-symbolic</property>
                             <signal name="clicked" handler="on_refresh_clicked" swapped="no"/>
@@ -1702,7 +1702,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="tooltip_text" translatable="yes">Click for help.</property>
-                            <property name="label" translatable="yes">_Help</property>
+                            <property name="label" translatable="yes" context="GUI|Custom Partitioning">_Help</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">system-help-symbolic</property>
                             <signal name="clicked" handler="on_help_clicked" swapped="no"/>
@@ -1847,7 +1847,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                     </child>
                     <child>
                       <object class="GtkButton" id="resetButton">
-                        <property name="label" translatable="yes">_Reset All</property>
+                        <property name="label" translatable="yes" context="GUI|Custom Partitioning">_Reset All</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
@@ -1879,7 +1879,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
                           <object class="GtkLabel" id="summary_label">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="label">%d _storage devices selected</property>
+                            <property name="label" context="GUI|Custom Partitioning">%d _storage devices selected</property>
                             <property name="use_underline">True</property>
                             <attributes>
                               <attribute name="underline" value="True"/>
@@ -1949,7 +1949,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="cancel_button">
-                <property name="label" translatable="yes">_Cancel</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure Dialog">_Cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -1964,7 +1964,7 @@ until you click on the main menu's 'Begin Installation' button.</property>
             </child>
             <child>
               <object class="GtkButton" id="select_button">
-                <property name="label" translatable="yes">_Select</property>
+                <property name="label" translatable="yes" context="GUI|Custom Partitioning|Configure Dialog">_Select</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py
index 5d9e75f..48e58e7 100644
--- a/pyanaconda/ui/gui/spokes/custom.py
+++ b/pyanaconda/ui/gui/spokes/custom.py
@@ -34,7 +34,7 @@ import re
 
 from pykickstart.constants import CLEARPART_TYPE_NONE, AUTOPART_TYPE_PLAIN, AUTOPART_TYPE_BTRFS, AUTOPART_TYPE_LVM, AUTOPART_TYPE_LVM_THINP
 
-from pyanaconda.i18n import _, N_, P_
+from pyanaconda.i18n import _, N_, C_, CP_
 from pyanaconda.product import productName, productVersion
 from pyanaconda.threads import AnacondaThread, threadMgr
 from pyanaconda.constants import THREAD_EXECUTE_STORAGE, THREAD_STORAGE, THREAD_CUSTOM_STORAGE_INIT
@@ -318,7 +318,9 @@ class ConfirmDeleteDialog(GUIObject):
         if rootName and "_" in rootName:
             rootName = rootName.replace("_", "__")
         self._removeAll.set_label(
-                _("Delete _all other filesystems in the %s root as well.") % rootName)
+                C_("GUI|Custom Partitioning|Confirm Delete Dialog",
+                    "Delete _all other filesystems in the %s root as well.")
+                % rootName)
         self._removeAll.set_sensitive(rootName is not None)
 
         if mountpoint:
@@ -839,9 +841,10 @@ class CustomPartitioningSpoke(NormalSpoke, StorageChecker):
         self._totalSpaceLabel.set_text(str(self._currentTotalSpace()))
 
         count = len(self.data.clearpart.drives)
-        summary = P_("%d _storage device selected",
-                     "%d _storage devices selected",
-                     count) % count
+        summary = CP_("GUI|Custom Partitioning",
+                "%d _storage device selected",
+                "%d _storage devices selected",
+                count) % count
 
         self._summaryLabel.set_text(summary)
 
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.glade b/pyanaconda/ui/gui/spokes/datetime_spoke.glade
index 4d50466..71b453c 100644
--- a/pyanaconda/ui/gui/spokes/datetime_spoke.glade
+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.glade
@@ -90,7 +90,7 @@
                               <object class="GtkLabel" id="regionLabel">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Region:</property>
+                                <property name="label" translatable="yes" context="GUI|Date and Time">_Region:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">regionCombobox</property>
                               </object>
@@ -132,7 +132,7 @@
                               <object class="GtkLabel" id="cityLabel">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_City:</property>
+                                <property name="label" translatable="yes" context="GUI|Date and Time">_City:</property>
                                 <property name="use_underline">True</property>
                                 <property name="mnemonic_widget">cityCombobox</property>
                               </object>
@@ -185,7 +185,7 @@
                                       <object class="GtkLabel" id="networkTimeLabel">
                                         <property name="visible">True</property>
                                         <property name="can_focus">False</property>
-                                        <property name="label" translatable="yes">_Network Time</property>
+                                        <property name="label" translatable="yes" context="GUI|Date and Time">_Network Time</property>
                                         <property name="use_underline">True</property>
                                         <property name="mnemonic_widget">networkTimeSwitch</property>
                                       </object>
@@ -472,7 +472,7 @@
                                     <property name="orientation">vertical</property>
                                     <child>
                                       <object class="GtkRadioButton" id="timeFormatRB">
-                                        <property name="label" translatable="yes">24-_hour</property>
+                                        <property name="label" translatable="yes" context="GUI|Date and Time">24-_hour</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">False</property>
@@ -490,7 +490,7 @@
                                     </child>
                                     <child>
                                       <object class="GtkRadioButton" id="timeFormatRB2">
-                                        <property name="label" translatable="yes">_AM/PM</property>
+                                        <property name="label" translatable="yes" context="GUI|Date and Time">_AM/PM</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">False</property>
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.py b/pyanaconda/ui/gui/spokes/datetime_spoke.py
index 577f3fa..04c62b8 100644
--- a/pyanaconda/ui/gui/spokes/datetime_spoke.py
+++ b/pyanaconda/ui/gui/spokes/datetime_spoke.py
@@ -31,7 +31,7 @@ from pyanaconda.ui.gui.spokes import NormalSpoke
 from pyanaconda.ui.gui.categories.localization import LocalizationCategory
 from pyanaconda.ui.gui.utils import enlightbox, gtk_action_nowait, gtk_call_once
 
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, CN_
 from pyanaconda.timezone import NTP_SERVICE, get_all_regions_and_timezones, is_valid_timezone
 from pyanaconda import iutil
 from pyanaconda import isys
@@ -288,7 +288,7 @@ class DatetimeSpoke(FirstbootSpokeMixIn, NormalSpoke):
     category = LocalizationCategory
 
     icon = "preferences-system-time-symbolic"
-    title = N_("DATE & _TIME")
+    title = CN_("GUI|Spoke", "DATE & _TIME")
 
     def __init__(self, *args):
         NormalSpoke.__init__(self, *args)
diff --git a/pyanaconda/ui/gui/spokes/filter.glade b/pyanaconda/ui/gui/spokes/filter.glade
index 0f60bb9..1205e8e 100644
--- a/pyanaconda/ui/gui/spokes/filter.glade
+++ b/pyanaconda/ui/gui/spokes/filter.glade
@@ -131,7 +131,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">Search _By:</property>
+                                    <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search">Search _By:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">searchTypeCombo</property>
                                   </object>
@@ -189,7 +189,7 @@
                                           <object class="GtkLabel" id="label13">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">_Port:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_Port:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">searchPortCombo</property>
                                           </object>
@@ -216,7 +216,7 @@
                                           <object class="GtkLabel" id="label14">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">_Target:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_Target:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">searchTargetEntry</property>
                                           </object>
@@ -242,7 +242,7 @@
                                           <object class="GtkLabel" id="label15">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">_LUN:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|Port Target LUN">_LUN:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">searchLUNEntry</property>
                                           </object>
@@ -282,7 +282,7 @@
                                           <object class="GtkLabel" id="label18">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">_WWID:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Search|WWID">_WWID:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">searchWWIDEntry</property>
                                           </object>
@@ -513,7 +513,7 @@
                       <object class="GtkLabel" id="searchLabel">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Searc_h</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">Searc_h</property>
                         <property name="use_underline">True</property>
                       </object>
                       <packing>
@@ -543,7 +543,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Filter By:</property>
+                                    <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath">_Filter By:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">multipathTypeCombo</property>
                                   </object>
@@ -601,7 +601,7 @@
                                           <object class="GtkLabel" id="label7">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Show Only _Devices From:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|Vendor">Show Only _Devices From:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">multipathVendorCombo</property>
                                           </object>
@@ -641,7 +641,7 @@
                                           <object class="GtkLabel" id="label16">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Show Only _Devices With:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|Interconnect">Show Only _Devices With:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">multipathInterconnectCombo</property>
                                           </object>
@@ -681,7 +681,7 @@
                                           <object class="GtkLabel" id="label17">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Show Only _Devices Containing:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Multipath|WWID">Show Only _Devices Containing:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">multipathWWIDEntry</property>
                                           </object>
@@ -868,7 +868,7 @@
                       <object class="GtkLabel" id="multipathLabel">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">_Multipath Devices</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">_Multipath Devices</property>
                         <property name="use_underline">True</property>
                       </object>
                       <packing>
@@ -899,7 +899,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Filter By:</property>
+                                    <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other">_Filter By:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">multipathTypeCombo</property>
                                   </object>
@@ -957,7 +957,7 @@
                                           <object class="GtkLabel" id="label12">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Show Only _Devices From:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|Vendor">Show Only _Devices From:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">otherVendorCombo</property>
                                           </object>
@@ -997,7 +997,7 @@
                                           <object class="GtkLabel" id="label20">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Show Only _Devices With:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|Interconnect">Show Only _Devices With:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">otherInterconnectCombo</property>
                                           </object>
@@ -1037,7 +1037,7 @@
                                           <object class="GtkLabel" id="label21">
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
-                                            <property name="label" translatable="yes">Show Only _Devices Containing:</property>
+                                            <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|Other|ID">Show Only _Devices Containing:</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">otherIDEntry</property>
                                           </object>
@@ -1213,7 +1213,7 @@
                       <object class="GtkLabel" id="otherLabel">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">_Other SAN Devices</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">_Other SAN Devices</property>
                         <property name="use_underline">True</property>
                       </object>
                       <packing>
@@ -1235,7 +1235,7 @@
                       <object class="GtkLabel" id="label4">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">Firmware _RAID</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">Firmware _RAID</property>
                         <property name="use_underline">True</property>
                       </object>
                       <packing>
@@ -1266,7 +1266,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Filter By:</property>
+                                    <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">_Filter By:</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">zFilterCombo</property>
                                   </object>
@@ -1282,7 +1282,7 @@
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
-                                    <property name="label" translatable="yes">_Label</property>
+                                    <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">_Label</property>
                                     <property name="use_underline">True</property>
                                     <property name="mnemonic_widget">zFilterEntry</property>
                                   </object>
@@ -1295,7 +1295,7 @@
                                 </child>
                                 <child>
                                   <object class="GtkButton" id="zGoButton">
-                                    <property name="label" translatable="yes">_Go</property>
+                                    <property name="label" translatable="yes" context="GUI|Installation Destination|Filter|zSeries">_Go</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
@@ -1465,7 +1465,7 @@
                       <object class="GtkLabel" id="zLabel">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">_zSeries Devices</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">_zSeries Devices</property>
                         <property name="use_underline">True</property>
                       </object>
                       <packing>
@@ -1488,7 +1488,7 @@
                     <property name="layout_style">end</property>
                     <child>
                       <object class="GtkButton" id="addZFCPButton">
-                        <property name="label" translatable="yes">_Add ZFCP LUN...</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">_Add ZFCP LUN...</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
@@ -1503,7 +1503,7 @@
                     </child>
                     <child>
                       <object class="GtkButton" id="addISCSIButton">
-                        <property name="label" translatable="yes">Add _iSCSI Target...</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">Add _iSCSI Target...</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
@@ -1518,7 +1518,7 @@
                     </child>
                     <child>
                       <object class="GtkButton" id="addFCOEButton">
-                        <property name="label" translatable="yes">Add FCo_E SAN...</property>
+                        <property name="label" translatable="yes" context="GUI|Installation Destination|Filter">Add FCo_E SAN...</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
@@ -1553,7 +1553,7 @@
                       <object class="GtkLabel" id="summary_button_label">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label">%d _storage devices selected</property>
+                        <property name="label" context="GUI|Installation Destination|Filter">%d _storage devices selected</property>
                         <property name="use_underline">True</property>
                         <attributes>
                           <attribute name="underline" value="True"/>
diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py
index 1adb2c9..5b70d5f 100644
--- a/pyanaconda/ui/gui/spokes/filter.py
+++ b/pyanaconda/ui/gui/spokes/filter.py
@@ -27,7 +27,7 @@ from blivet.devices import DASDDevice, FcoeDiskDevice, iScsiDiskDevice, Multipat
 from blivet.fcoe import has_fcoe
 
 from pyanaconda.flags import flags
-from pyanaconda.i18n import N_, P_
+from pyanaconda.i18n import CN_, CP_
 
 from pyanaconda.ui.lib.disks import getDisks, isLocalDisk, size_str
 from pyanaconda.ui.gui.utils import enlightbox
@@ -405,7 +405,7 @@ class FilterSpoke(NormalSpoke):
 
     category = SystemCategory
 
-    title = N_("_INSTALLATION DESTINATION")
+    title = CN_("GUI|Spoke", "_INSTALLATION DESTINATION")
 
     def __init__(self, *args):
         NormalSpoke.__init__(self, *args)
@@ -505,7 +505,8 @@ class FilterSpoke(NormalSpoke):
         # potentially show three devices selected (mpatha, sda, sdb for instance).
         count = len([disk for disk in self.selected_disks if disk not in self.ancestors])
 
-        summary = P_("%d _storage device selected",
+        summary = CP_("GUI|Installation Destination|Filter",
+                     "%d _storage device selected",
                      "%d _storage devices selected",
                      count) % count
 
diff --git a/pyanaconda/ui/gui/spokes/keyboard.glade b/pyanaconda/ui/gui/spokes/keyboard.glade
index 401a35b..ac76f4e 100644
--- a/pyanaconda/ui/gui/spokes/keyboard.glade
+++ b/pyanaconda/ui/gui/spokes/keyboard.glade
@@ -353,7 +353,7 @@
                                 <property name="width_request">42</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Add layout</property>
+                                <property name="label" translatable="yes" context="GUI|Keyboard Layout">_Add layout</property>
                                 <property name="use_underline">True</property>
                                 <property name="icon_name">list-add-symbolic</property>
                                 <signal name="clicked" handler="on_add_clicked" swapped="no"/>
@@ -368,7 +368,7 @@
                                 <property name="width_request">42</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Remove layout</property>
+                                <property name="label" translatable="yes" context="GUI|Keyboard Layout">_Remove layout</property>
                                 <property name="use_underline">True</property>
                                 <property name="icon_name">list-remove-symbolic</property>
                                 <signal name="clicked" handler="on_remove_clicked" swapped="no"/>
@@ -383,7 +383,7 @@
                                 <property name="width_request">42</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Move selected layout _up</property>
+                                <property name="label" translatable="yes" context="GUI|Keyboard Layout">Move selected layout _up</property>
                                 <property name="use_underline">True</property>
                                 <property name="icon_name">go-up-symbolic</property>
                                 <signal name="clicked" handler="on_up_clicked" swapped="no"/>
@@ -398,7 +398,7 @@
                                 <property name="width_request">42</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Move selected layout _down</property>
+                                <property name="label" translatable="yes" context="GUI|Keyboard Layout">Move selected layout _down</property>
                                 <property name="use_underline">True</property>
                                 <property name="icon_name">go-down-symbolic</property>
                                 <signal name="clicked" handler="on_down_clicked" swapped="no"/>
@@ -414,7 +414,7 @@
                                 <property name="height_request">36</property>
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Preview layout</property>
+                                <property name="label" translatable="yes" context="GUI|Keyboard Layout">_Preview layout</property>
                                 <property name="use_underline">True</property>
                                 <property name="icon_name">input-keyboard-symbolic</property>
                                 <signal name="clicked" handler="on_preview_clicked" swapped="no"/>
@@ -451,7 +451,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="halign">start</property>
-                            <property name="label" translatable="yes">_Test the layout configuration below:</property>
+                            <property name="label" translatable="yes" context="GUI|Keyboard Layout">_Test the layout configuration below:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">layoutTextView</property>
                             <attributes>
@@ -507,7 +507,7 @@
                         </child>
                         <child>
                           <object class="GtkButton" id="optionsButton">
-                            <property name="label" translatable="yes">_Options</property>
+                            <property name="label" translatable="yes" context="GUI|Keyboard Layout">_Options</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/keyboard.py b/pyanaconda/ui/gui/spokes/keyboard.py
index b5d3af0..a30aac5 100644
--- a/pyanaconda/ui/gui/spokes/keyboard.py
+++ b/pyanaconda/ui/gui/spokes/keyboard.py
@@ -28,7 +28,7 @@ from pyanaconda.ui.gui.categories.localization import LocalizationCategory
 from pyanaconda.ui.gui.utils import enlightbox, gtk_call_once, escape_markup
 from pyanaconda import keyboard
 from pyanaconda import flags
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, N_, CN_
 from pyanaconda.constants import DEFAULT_KEYBOARD
 
 import logging
@@ -266,7 +266,7 @@ class KeyboardSpoke(NormalSpoke):
     category = LocalizationCategory
 
     icon = "input-keyboard-symbolic"
-    title = N_("_KEYBOARD")
+    title = CN_("GUI|Spoke", "_KEYBOARD")
 
     def __init__(self, *args):
         NormalSpoke.__init__(self, *args)
diff --git a/pyanaconda/ui/gui/spokes/langsupport.py b/pyanaconda/ui/gui/spokes/langsupport.py
index 9c37895..a5b5117 100644
--- a/pyanaconda/ui/gui/spokes/langsupport.py
+++ b/pyanaconda/ui/gui/spokes/langsupport.py
@@ -22,7 +22,7 @@
 
 from gi.repository import Pango
 from pyanaconda.flags import flags
-from pyanaconda.i18n import N_
+from pyanaconda.i18n import CN_
 from pyanaconda.ui.gui.spokes import NormalSpoke
 from pyanaconda.ui.gui.utils import escape_markup
 from pyanaconda.ui.gui.categories.localization import LocalizationCategory
@@ -44,7 +44,7 @@ class LangsupportSpoke(LangLocaleHandler, NormalSpoke):
     category = LocalizationCategory
 
     icon = "accessories-character-map-symbolic"
-    title = N_("_LANGUAGE SUPPORT")
+    title = CN_("GUI|Spoke", "_LANGUAGE SUPPORT")
 
     def __init__(self, *args, **kwargs):
         NormalSpoke.__init__(self, *args, **kwargs)
diff --git a/pyanaconda/ui/gui/spokes/lib/cart.glade b/pyanaconda/ui/gui/spokes/lib/cart.glade
index c257c78..8809f5b 100644
--- a/pyanaconda/ui/gui/spokes/lib/cart.glade
+++ b/pyanaconda/ui/gui/spokes/lib/cart.glade
@@ -40,7 +40,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="close_button">
-                <property name="label" translatable="yes">_Close</property>
+                <property name="label" translatable="yes" context="GUI|Selected Disks Dialog">_Close</property>
                 <property name="use_action_appearance">False</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -99,7 +99,7 @@
                     <property name="model">disk_store</property>
                     <child internal-child="selection">
                         <object class="GtkTreeSelection" id="disk_selection">
-                            <signal name="changed" handler="on_selection_changed" swapped="no"/>
+                          <signal name="changed" handler="on_selection_changed" swapped="no"/>
                         </object>
                     </child>
                     <child>
@@ -181,7 +181,7 @@
                 <property name="spacing">12</property>
                 <child>
                   <object class="GtkButton" id="set_as_boot_button">
-                    <property name="label" translatable="yes">_Set as Boot Device</property>
+                    <property name="label" translatable="yes" context="GUI|Selected Disks Dialog">_Set as Boot Device</property>
                     <property name="use_action_appearance">False</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
@@ -198,7 +198,7 @@
                 </child>
                 <child>
                   <object class="GtkButton" id="remove_button">
-                    <property name="label" translatable="yes">_Remove</property>
+                    <property name="label" translatable="yes" context="GUI|Selected Disks Dialog">_Remove</property>
                     <property name="use_action_appearance">False</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
diff --git a/pyanaconda/ui/gui/spokes/lib/cart.py b/pyanaconda/ui/gui/spokes/lib/cart.py
index db34a6d..a78a48c 100644
--- a/pyanaconda/ui/gui/spokes/lib/cart.py
+++ b/pyanaconda/ui/gui/spokes/lib/cart.py
@@ -22,7 +22,7 @@
 
 from gi.repository import Gtk
 
-from pyanaconda.i18n import _, P_
+from pyanaconda.i18n import C_, P_
 from pyanaconda.ui.lib.disks import size_str
 from pyanaconda.ui.gui import GUIObject
 from pyanaconda.ui.gui.utils import escape_markup
@@ -189,9 +189,11 @@ class SelectedDisksDialog(GUIObject):
 
     def _toggle_button_text(self, row):
         if row[IS_BOOT_COL]:
-            self._set_button.set_label(_("_Do not install bootloader"))
+            self._set_button.set_label(C_("GUI|Selected Disks Dialog",
+                "_Do not install bootloader"))
         else:
-            self._set_button.set_label(_("_Set as Boot Device"))
+            self._set_button.set_label(C_("GUI|Selected Disks Dialog",
+                "_Set as Boot Device"))
 
     def on_selection_changed(self, *args):
         itr = self._selection.get_selected()[1]
diff --git a/pyanaconda/ui/gui/spokes/lib/detailederror.py b/pyanaconda/ui/gui/spokes/lib/detailederror.py
index 613fef8..c59511f 100644
--- a/pyanaconda/ui/gui/spokes/lib/detailederror.py
+++ b/pyanaconda/ui/gui/spokes/lib/detailederror.py
@@ -19,7 +19,7 @@
 # Red Hat Author(s): Chris Lumens <clumens at redhat.com>
 #
 
-from pyanaconda.i18n import _
+from pyanaconda.i18n import C_
 from pyanaconda.ui.gui import GUIObject
 
 __all__ = ["DetailedErrorDialog"]
@@ -46,7 +46,7 @@ class DetailedErrorDialog(GUIObject):
         GUIObject.__init__(self, *args, **kwargs)
 
         if not buttons:
-            widget = self.window.add_button(_("_Cancel"), 0)
+            widget = self.window.add_button(C_("GUI|Detailed Error Dialog", "_Cancel"), 0)
         else:
             buttonbox = self.builder.get_object("detailedButtonBox")
             i = 0
@@ -56,7 +56,7 @@ class DetailedErrorDialog(GUIObject):
 
                 # Quit buttons should always appear left-most, unless it's the
                 # only button.  Then it should appear on the right.
-                if button == _("_Quit") and len(buttons) > 1:
+                if button == C_("GUI|Detailed Error Dialog", "_Quit") and len(buttons) > 1:
                     buttonbox.set_child_secondary(widget, True)
 
                 i += 1
diff --git a/pyanaconda/ui/gui/spokes/lib/passphrase.glade b/pyanaconda/ui/gui/spokes/lib/passphrase.glade
index 731019a..cddc22d 100644
--- a/pyanaconda/ui/gui/spokes/lib/passphrase.glade
+++ b/pyanaconda/ui/gui/spokes/lib/passphrase.glade
@@ -50,7 +50,7 @@
             </child>
             <child>
               <object class="GtkButton" id="passphrase_save_button">
-                <property name="label" translatable="yes">_Save Passphrase</property>
+                <property name="label" translatable="yes" context="GUI|Passphrase Dialog">_Save Passphrase</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -97,7 +97,7 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Passphrase:</property>
+                <property name="label" translatable="yes" context="GUI|Passphrase Dialog">_Passphrase:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">passphrase_entry</property>
               </object>
@@ -131,7 +131,7 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="xalign">0</property>
-                <property name="label" translatable="yes">_Confirm:</property>
+                <property name="label" translatable="yes" context="GUI|Passphrase Dialog">_Confirm:</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">confirm_entry</property>
               </object>
diff --git a/pyanaconda/ui/gui/spokes/lib/refresh.glade b/pyanaconda/ui/gui/spokes/lib/refresh.glade
index 2578dd2..647c401 100644
--- a/pyanaconda/ui/gui/spokes/lib/refresh.glade
+++ b/pyanaconda/ui/gui/spokes/lib/refresh.glade
@@ -138,7 +138,7 @@
                 <property name="show_tabs">False</property>
                 <child>
                   <object class="GtkButton" id="rescanButton">
-                    <property name="label" translatable="yes">_Rescan Disks</property>
+                    <property name="label" translatable="yes" context="GUI|Refresh Dialog|Rescan">_Rescan Disks</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/lib/resize.glade b/pyanaconda/ui/gui/spokes/lib/resize.glade
index 45489d2..b865f2a 100644
--- a/pyanaconda/ui/gui/spokes/lib/resize.glade
+++ b/pyanaconda/ui/gui/spokes/lib/resize.glade
@@ -64,7 +64,7 @@
             </child>
             <child>
               <object class="GtkButton" id="resizeButton">
-                <property name="label" translatable="yes">_Reclaim space</property>
+                <property name="label" translatable="yes" context="GUI|Reclaim Dialog">_Reclaim space</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
@@ -216,7 +216,7 @@
                 <property name="margin_top">6</property>
                 <child>
                   <object class="GtkButton" id="preserveButton">
-                    <property name="label" translatable="yes">_Preserve</property>
+                    <property name="label" translatable="yes" context="GUI|Reclaim Dialog">_Preserve</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
@@ -232,7 +232,7 @@
                 </child>
                 <child>
                   <object class="GtkButton" id="deleteButton">
-                    <property name="label" translatable="yes">_Delete</property>
+                    <property name="label" translatable="yes" context="GUI|Reclaim Dialog">_Delete</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
@@ -248,7 +248,7 @@
                 </child>
                 <child>
                   <object class="GtkButton" id="shrinkButton">
-                    <property name="label" translatable="yes">_Shrink</property>
+                    <property name="label" translatable="yes" context="GUI|Reclaim Dialog">_Shrink</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
@@ -264,7 +264,7 @@
                 </child>
                 <child>
                   <object class="GtkButton" id="deleteAllButton">
-                    <property name="label" translatable="yes">Delete _all</property>
+                    <property name="label" translatable="yes" context="GUI|Reclaim Dialog">Delete _all</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/lib/resize.py b/pyanaconda/ui/gui/spokes/lib/resize.py
index 755faea..e118445 100644
--- a/pyanaconda/ui/gui/spokes/lib/resize.py
+++ b/pyanaconda/ui/gui/spokes/lib/resize.py
@@ -24,7 +24,7 @@ from collections import namedtuple
 
 from gi.repository import Gdk, Gtk
 
-from pyanaconda.i18n import _, N_, P_
+from pyanaconda.i18n import _, C_, N_, P_
 from pyanaconda.ui.lib.disks import size_str
 from pyanaconda.ui.gui import GUIObject
 from pyanaconda.ui.gui.utils import escape_markup
@@ -406,12 +406,12 @@ class ResizeDialog(GUIObject):
         self._diskStore.foreach(self._scheduleActions, None)
 
     def on_delete_all_clicked(self, button, *args):
-        if button.get_label() == _("Delete _all"):
+        if button.get_label() == C_("GUI|Reclaim Dialog", "Delete _all"):
             action = DELETE
-            button.set_label(_("Preserve _all"))
+            button.set_label(C_("GUI|Reclaim Dialog", "Preserve _all"))
         else:
             action = PRESERVE
-            button.set_label(_("Delete _all"))
+            button.set_label(C_("GUI|Reclaim Dialog", "Delete _all"))
 
         itr = self._diskStore.get_iter_first()
         while itr:
diff --git a/pyanaconda/ui/gui/spokes/lib/summary.glade b/pyanaconda/ui/gui/spokes/lib/summary.glade
index 3a39e7d..9ed4e60 100644
--- a/pyanaconda/ui/gui/spokes/lib/summary.glade
+++ b/pyanaconda/ui/gui/spokes/lib/summary.glade
@@ -36,7 +36,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="summaryCancelButton">
-                <property name="label" translatable="yes">_Cancel &amp; Return to Custom Partitioning</property>
+                <property name="label" translatable="yes" context="GUI|Summary Dialog">_Cancel &amp; Return to Custom Partitioning</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -51,7 +51,7 @@
             </child>
             <child>
               <object class="GtkButton" id="summaryAcceptButton">
-                <property name="label" translatable="yes">_Accept Changes</property>
+                <property name="label" translatable="yes" context="GUI|Summary Dialog">_Accept Changes</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
diff --git a/pyanaconda/ui/gui/spokes/network.glade b/pyanaconda/ui/gui/spokes/network.glade
index bb20596..c7869f3 100644
--- a/pyanaconda/ui/gui/spokes/network.glade
+++ b/pyanaconda/ui/gui/spokes/network.glade
@@ -62,7 +62,7 @@
               <object class="GtkLabel" id="label_add_device">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label" translatable="yes">_Select the type of device you wish to add</property>
+                <property name="label" translatable="yes" context="GUI|Network|Add Device Dialog">_Select the type of device you wish to add</property>
                 <property name="use_underline">True</property>
                 <property name="mnemonic_widget">combobox_add_device</property>
               </object>
@@ -803,7 +803,7 @@ updates available for you.</property>
                                         <property name="vexpand">True</property>
                                         <child>
                                           <object class="GtkButton" id="button_wired_options">
-                                            <property name="label" translatable="yes">C_onfigure...</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Wired">C_onfigure...</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">True</property>
@@ -1131,7 +1131,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Network Name</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Wireless">_Network Name</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">combobox_wireless_network_name</property>
                                           </object>
@@ -1251,7 +1251,7 @@ updates available for you.</property>
                                         <property name="vexpand">True</property>
                                         <child>
                                           <object class="GtkButton" id="start_hotspot_button">
-                                            <property name="label" translatable="yes">_Use as Hotspot...</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Wireless">_Use as Hotspot...</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">True</property>
@@ -1270,7 +1270,7 @@ updates available for you.</property>
                                         </child>
                                         <child>
                                           <object class="GtkButton" id="stop_hotspot_button">
-                                            <property name="label" translatable="yes">_Stop Hotspot...</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Wireless">_Stop Hotspot...</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">True</property>
@@ -1289,7 +1289,7 @@ updates available for you.</property>
                                         </child>
                                         <child>
                                           <object class="GtkButton" id="button_wireless_options">
-                                            <property name="label" translatable="yes">_Configure...</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Wireless">_Configure...</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">True</property>
@@ -1641,7 +1641,7 @@ updates available for you.</property>
                                         <property name="top_padding">12</property>
                                         <child>
                                           <object class="GtkButton" id="button_mobilebb_options">
-                                            <property name="label" translatable="yes">_Configure...</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Mobile Broadband">_Configure...</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">True</property>
@@ -1926,7 +1926,7 @@ updates available for you.</property>
                                         <property name="top_padding">12</property>
                                         <child>
                                           <object class="GtkButton" id="button_vpn_options">
-                                            <property name="label" translatable="yes">_Configure...</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|VPN">_Configure...</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">True</property>
                                             <property name="receives_default">True</property>
@@ -2053,7 +2053,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Method</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Proxy">_Method</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">combobox_proxy_mode</property>
                                           </object>
@@ -2081,7 +2081,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Configuration URL</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Proxy">_Configuration URL</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">entry_proxy_url</property>
                                           </object>
@@ -2111,7 +2111,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">HTTP _Proxy</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Proxy">HTTP _Proxy</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">entry_proxy_http</property>
                                           </object>
@@ -2127,7 +2127,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">H_TTPS Proxy</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Proxy">H_TTPS Proxy</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">entry_proxy_https</property>
                                           </object>
@@ -2143,7 +2143,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_FTP Proxy</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Proxy">_FTP Proxy</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">entry_proxy_ftp</property>
                                           </object>
@@ -2159,7 +2159,7 @@ updates available for you.</property>
                                             <property name="visible">True</property>
                                             <property name="can_focus">False</property>
                                             <property name="xalign">1</property>
-                                            <property name="label" translatable="yes">_Socks Host</property>
+                                            <property name="label" translatable="yes" context="GUI|Network|Proxy">_Socks Host</property>
                                             <property name="use_underline">True</property>
                                             <property name="mnemonic_widget">entry_proxy_socks</property>
                                           </object>
@@ -2389,7 +2389,7 @@ updates available for you.</property>
                         <property name="can_focus">False</property>
                         <child>
                           <object class="GtkButton" id="button_unlock">
-                            <property name="label" translatable="yes">Unloc_k</property>
+                            <property name="label" translatable="yes" context="GUI|Network">Unloc_k</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">True</property>
@@ -2410,7 +2410,7 @@ updates available for you.</property>
                               <object class="GtkLabel" id="label_flight_mode">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">_Airplane Mode</property>
+                                <property name="label" translatable="yes" context="GUI|Network">_Airplane Mode</property>
                                 <property name="use_underline">True</property>
                               </object>
                               <packing>
@@ -2444,7 +2444,7 @@ updates available for you.</property>
                           <object class="GtkLabel" id="label_hostname">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="label" translatable="yes">_Hostname:</property>
+                            <property name="label" translatable="yes" context="GUI|Network">_Hostname:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">entry_hostname</property>
                           </object>
diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py
index 145da67..42bf198 100644
--- a/pyanaconda/ui/gui/spokes/network.py
+++ b/pyanaconda/ui/gui/spokes/network.py
@@ -32,7 +32,7 @@
 from gi.repository import Gtk
 
 from pyanaconda.flags import can_touch_runtime_system
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, C_, CN_
 from pyanaconda import constants
 from pyanaconda.ui.communication import hubQ
 from pyanaconda.ui.gui import GUIObject
@@ -1126,7 +1126,7 @@ class SecretAgent(dbus.service.Object):
         secrets = []
         key_mgmt = original_secrets['key-mgmt']
         if key_mgmt in ['wpa-none', 'wpa-psk']:
-            secrets.append({'label'     : _('_Password:'),
+            secrets.append({'label'     : C_('GUI|Network|Secrets Dialog', '_Password:'),
                             'key'      : 'psk',
                             'value'    : original_secrets.get('psk', ''),
                             'validate' : self._validate_wpapsk,
@@ -1134,7 +1134,7 @@ class SecretAgent(dbus.service.Object):
         # static WEP
         elif key_mgmt == 'none':
             key_idx = str(original_secrets.get('wep_tx_keyidx', '0'))
-            secrets.append({'label'     : _('_Key:'),
+            secrets.append({'label'     : C_('GUI|Network|Secrets Dialog', '_Key:'),
                             'key'      : 'wep-key%s' % key_idx,
                             'value'    : original_secrets.get('wep-key%s' % key_idx, ''),
                             'wep_key_type': original_secrets.get('wep-key-type', ''),
@@ -1189,7 +1189,7 @@ class NetworkSpoke(FirstbootSpokeMixIn, NormalSpoke):
     mainWidgetName = "networkWindow"
     uiFile = "spokes/network.glade"
 
-    title = N_("_NETWORK CONFIGURATION")
+    title = CN_("GUI|Spoke", "_NETWORK CONFIGURATION")
     icon = "network-transmit-receive-symbolic"
 
     category = SystemCategory
diff --git a/pyanaconda/ui/gui/spokes/password.glade b/pyanaconda/ui/gui/spokes/password.glade
index b57b7e4..6f428fd 100644
--- a/pyanaconda/ui/gui/spokes/password.glade
+++ b/pyanaconda/ui/gui/spokes/password.glade
@@ -52,7 +52,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">_Root Password:</property>
+                        <property name="label" translatable="yes" context="GUI|Password">_Root Password:</property>
                         <property name="use_markup">True</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">pw</property>
@@ -69,7 +69,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">_Confirm:</property>
+                        <property name="label" translatable="yes" context="GUI|Password">_Confirm:</property>
                         <property name="use_markup">True</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">confirm</property>
diff --git a/pyanaconda/ui/gui/spokes/password.py b/pyanaconda/ui/gui/spokes/password.py
index 703e726..08342ea 100644
--- a/pyanaconda/ui/gui/spokes/password.py
+++ b/pyanaconda/ui/gui/spokes/password.py
@@ -19,7 +19,7 @@
 # Red Hat Author(s): Jesse Keating <jkeating at redhat.com>
 #
 
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, CN_
 from pyanaconda.users import cryptPassword, validatePassword
 
 from pyanaconda.ui.gui import GUICheck
@@ -43,7 +43,7 @@ class PasswordSpoke(FirstbootSpokeMixIn, NormalSpoke):
     category = UserSettingsCategory
 
     icon = "dialog-password-symbolic"
-    title = N_("_ROOT PASSWORD")
+    title = CN_("GUI|Spoke", "_ROOT PASSWORD")
 
     def __init__(self, *args):
         NormalSpoke.__init__(self, *args)
diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py
index 285e857..89624c5 100644
--- a/pyanaconda/ui/gui/spokes/software.py
+++ b/pyanaconda/ui/gui/spokes/software.py
@@ -22,7 +22,7 @@
 from gi.repository import Gdk
 
 from pyanaconda.flags import flags
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, C_, CN_
 from pyanaconda.packaging import MetadataError
 from pyanaconda.threads import threadMgr, AnacondaThread
 from pyanaconda import constants
@@ -45,7 +45,7 @@ class SoftwareSelectionSpoke(NormalSpoke):
     category = SoftwareCategory
 
     icon = "package-x-generic-symbolic"
-    title = N_("_SOFTWARE SELECTION")
+    title = CN_("GUI|Spoke", "_SOFTWARE SELECTION")
 
     def __init__(self, *args, **kwargs):
         NormalSpoke.__init__(self, *args, **kwargs)
@@ -404,9 +404,11 @@ class SoftwareSelectionSpoke(NormalSpoke):
         label = _("The following software marked for installation has errors.  "
                   "This is likely caused by an error with\nyour installation source.  "
                   "You can change your installation source or quit the installer.")
-        dialog = DetailedErrorDialog(self.data, buttons=[_("_Quit"), _("_Cancel"),
-                                                         _("_Modify Software Source")],
-                                                label=label)
+        dialog = DetailedErrorDialog(self.data,
+                buttons=[C_("GUI|Software Selection|Error Dialog", "_Quit"),
+                         C_("GUI|Software Selection|Error Dialog", "_Cancel"),
+                         C_("GUI|Software Selection|Error Dialog", "_Modify Software Source")],
+                label=label)
         with enlightbox(self.window, dialog.window):
             dialog.refresh(self._errorMsgs)
             rc = dialog.run()
diff --git a/pyanaconda/ui/gui/spokes/source.glade b/pyanaconda/ui/gui/spokes/source.glade
index 52a05e0..36d83dd 100644
--- a/pyanaconda/ui/gui/spokes/source.glade
+++ b/pyanaconda/ui/gui/spokes/source.glade
@@ -103,7 +103,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="doneButton">
-                <property name="label" translatable="yes">_Done</property>
+                <property name="label" translatable="yes" context="GUI|Software Source|Media Check Dialog">_Done</property>
                 <property name="visible">True</property>
                 <property name="sensitive">False</property>
                 <property name="can_focus">True</property>
@@ -233,7 +233,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="proxyCancelButton">
-                <property name="label" translatable="yes">_Cancel</property>
+                <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">_Cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -248,7 +248,7 @@
             </child>
             <child>
               <object class="GtkButton" id="proxyAddButton">
-                <property name="label" translatable="yes">_Add</property>
+                <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">_Add</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -276,7 +276,7 @@
             <property name="orientation">vertical</property>
             <child>
               <object class="GtkCheckButton" id="enableProxyCheck">
-                <property name="label" translatable="yes">_Enable HTTP Proxy</property>
+                <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">_Enable HTTP Proxy</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
@@ -309,7 +309,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">_Proxy URL</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">_Proxy URL</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">proxyURLEntry</property>
                         <attributes>
@@ -364,7 +364,7 @@
                 </child>
                 <child>
                   <object class="GtkCheckButton" id="enableAuthCheck">
-                    <property name="label" translatable="yes">_Use Authentication</property>
+                    <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">_Use Authentication</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -391,7 +391,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">User_name</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">User_name</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">proxyUsernameEntry</property>
                         <attributes>
@@ -410,7 +410,7 @@
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
                         <property name="xalign">0</property>
-                        <property name="label" translatable="yes">Pass_word</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source|Proxy Dialog">Pass_word</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">proxyPasswordEntry</property>
                         <attributes>
@@ -550,7 +550,7 @@
                 </child>
                 <child>
                   <object class="GtkRadioButton" id="autodetectRadioButton">
-                    <property name="label" translatable="yes">_Auto-detected installation media:</property>
+                    <property name="label" translatable="yes" context="GUI|Software Source">_Auto-detected installation media:</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="no_show_all">True</property>
@@ -602,7 +602,7 @@
                     </child>
                     <child>
                       <object class="GtkButton" id="verifyMediaButton">
-                        <property name="label" translatable="yes">_Verify</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source">_Verify</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
@@ -627,7 +627,7 @@
                 </child>
                 <child>
                   <object class="GtkRadioButton" id="isoRadioButton">
-                    <property name="label" translatable="yes">_ISO file:</property>
+                    <property name="label" translatable="yes" context="GUI|Software Source">_ISO file:</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
                     <property name="no_show_all">True</property>
@@ -654,7 +654,7 @@
                       <object class="GtkLabel" id="label6">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">D_evice:</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source">D_evice:</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">isoPartitionCombo</property>
                       </object>
@@ -684,7 +684,7 @@
                     </child>
                     <child>
                       <object class="GtkButton" id="isoChooserButton">
-                        <property name="label" translatable="yes">_Choose an ISO</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source">_Choose an ISO</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">True</property>
@@ -700,7 +700,7 @@
                     <child>
                       <object class="GtkButton" id="verifyIsoButton">
                         <!-- check_accelerators: verifyMediaButton -->
-                        <property name="label" translatable="yes">_Verify</property>
+                        <property name="label" translatable="yes" context="GUI|Software Source">_Verify</property>
                         <property name="visible">True</property>
                         <property name="sensitive">False</property>
                         <property name="can_focus">True</property>
@@ -723,7 +723,7 @@
                 </child>
                 <child>
                   <object class="GtkRadioButton" id="networkRadioButton">
-                    <property name="label" translatable="yes">_On the network:</property>
+                    <property name="label" translatable="yes" context="GUI|Software Source">_On the network:</property>
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
                     <property name="receives_default">False</property>
@@ -792,7 +792,7 @@
                         </child>
                         <child>
                           <object class="GtkButton" id="proxyButton">
-                            <property name="label" translatable="yes">_Proxy setup...</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">_Proxy setup...</property>
                             <property name="use_action_appearance">False</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
@@ -810,7 +810,7 @@
                         </child>
                         <child>
                           <object class="GtkCheckButton" id="mirrorlistCheckbox">
-                            <property name="label" translatable="yes">This URL refers to a _mirror list.</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">This URL refers to a _mirror list.</property>
                             <property name="use_action_appearance">False</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
@@ -851,7 +851,7 @@
                           <object class="GtkLabel" id="label3">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="label" translatable="yes">N_FS mount options:</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">N_FS mount options:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">nfsOptsEntry</property>
                           </object>
@@ -929,7 +929,7 @@
                           <object class="GtkLabel" id="label10">
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
-                            <property name="label" translatable="yes">Don't install the latest available software _updates. Install the default versions provided by the install source above.</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">Don't install the latest available software _updates. Install the default versions provided by the install source above.</property>
                             <property name="use_underline">True</property>
                             <property name="wrap">True</property>
                           </object>
@@ -1054,7 +1054,7 @@
                             <property name="has_tooltip">True</property>
                             <property name="tooltip_markup" translatable="yes">Add a new repository.</property>
                             <property name="tooltip_text" translatable="yes">Add a new repository.</property>
-                            <property name="label" translatable="yes">A_dd</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">A_dd</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">list-add-symbolic</property>
                             <signal name="clicked" handler="on_addRepo_clicked" swapped="no"/>
@@ -1073,7 +1073,7 @@
                             <property name="has_tooltip">True</property>
                             <property name="tooltip_markup" translatable="yes">Remove the selected repository.</property>
                             <property name="tooltip_text" translatable="yes">Remove the selected repository.</property>
-                            <property name="label" translatable="yes">_Remove</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">_Remove</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">list-remove-symbolic</property>
                             <signal name="clicked" handler="on_removeRepo_clicked" swapped="no"/>
@@ -1092,7 +1092,7 @@
                             <property name="has_tooltip">True</property>
                             <property name="tooltip_markup" translatable="yes">Revert to the default list of repositories.</property>
                             <property name="tooltip_text" translatable="yes">Revert to the default list of repositories.</property>
-                            <property name="label" translatable="yes">Rese_t</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">Rese_t</property>
                             <property name="use_underline">True</property>
                             <property name="icon_name">view-refresh</property>
                             <signal name="clicked" handler="on_resetRepos_clicked" swapped="no"/>
@@ -1186,7 +1186,7 @@
                         </child>
                         <child>
                           <object class="GtkCheckButton" id="repoMirrorlistCheckbox">
-                            <property name="label" translatable="yes">This URL refers to a mirror _list.</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">This URL refers to a mirror _list.</property>
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
@@ -1208,7 +1208,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">_Name:</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">_Name:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">repoNameEntry</property>
                             <attributes>
@@ -1250,7 +1250,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Pro_xy URL:</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">Pro_xy URL:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">repoProxyUrlEntry</property>
                             <attributes>
@@ -1269,7 +1269,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">U_sername:</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">U_sername:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">repoProxyUsernameEntry</property>
                             <attributes>
@@ -1288,7 +1288,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">False</property>
                             <property name="xalign">0</property>
-                            <property name="label" translatable="yes">Pass_word:</property>
+                            <property name="label" translatable="yes" context="GUI|Software Source">Pass_word:</property>
                             <property name="use_underline">True</property>
                             <property name="mnemonic_widget">repoProxyPasswordEntry</property>
                             <attributes>
diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py
index acdacca..4d6ba44 100644
--- a/pyanaconda/ui/gui/spokes/source.py
+++ b/pyanaconda/ui/gui/spokes/source.py
@@ -30,7 +30,7 @@ import os, signal
 from gi.repository import GLib
 
 from pyanaconda.flags import flags
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, N_, CN_
 from pyanaconda.image import opticalInstallMedia, potentialHdisoSources
 from pyanaconda.ui.communication import hubQ
 from pyanaconda.ui.gui import GUIObject
@@ -286,7 +286,7 @@ class SourceSpoke(NormalSpoke):
     category = SoftwareCategory
 
     icon = "media-optical-symbolic"
-    title = N_("_INSTALLATION SOURCE")
+    title = CN_("GUI|Spoke", "_INSTALLATION SOURCE")
 
     def __init__(self, *args, **kwargs):
         NormalSpoke.__init__(self, *args, **kwargs)
diff --git a/pyanaconda/ui/gui/spokes/storage.glade b/pyanaconda/ui/gui/spokes/storage.glade
index 8cc316f..eeacc23 100644
--- a/pyanaconda/ui/gui/spokes/storage.glade
+++ b/pyanaconda/ui/gui/spokes/storage.glade
@@ -24,7 +24,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="options1_cancel_button">
-                <property name="label" translatable="yes">Cancel &amp; _add more disks</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 1 Dialog">Cancel &amp; _add more disks</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -41,7 +41,7 @@
             </child>
             <child>
               <object class="GtkButton" id="options_continue_button1">
-                <property name="label" translatable="yes">_Continue</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 1 Dialog">_Continue</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
@@ -115,7 +115,7 @@
                   <object class="GtkLabel" id="options1_autopart_label">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label">A_utomatically configure my %(productName)s installation to the disk(s) I selected and return me to the main menu.</property>
+                    <property name="label" context="GUI|Storage|Options 1 Dialog">A_utomatically configure my %(productName)s installation to the disk(s) I selected and return me to the main menu.</property>
                     <property name="use_underline">True</property>
                     <property name="wrap">True</property>
                     <attributes>
@@ -144,7 +144,7 @@
                   <object class="GtkLabel" id="options1_reclaim_label">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label">I want more space. _Guide me through shrinking and/or removing partitions so I can have more space for %(productName)s.</property>
+                    <property name="label" context="GUI|Storage|Options 1 Dialog">I want more space. _Guide me through shrinking and/or removing partitions so I can have more space for %(productName)s.</property>
                     <property name="use_underline">True</property>
                     <property name="wrap">True</property>
                     <attributes>
@@ -173,7 +173,7 @@
                   <object class="GtkLabel" id="options1_custom_label">
                     <property name="visible">True</property>
                     <property name="can_focus">True</property>
-                    <property name="label">I want to review/_modify my disk partitions before continuing.</property>
+                    <property name="label" context="GUI|Storage|Options 1 Dialog">I want to review/_modify my disk partitions before continuing.</property>
                     <property name="use_underline">True</property>
                     <property name="wrap">True</property>
                     <attributes>
@@ -237,7 +237,7 @@
             </child>
             <child>
               <object class="GtkCheckButton" id="encryption1_checkbutton">
-                <property name="label" translatable="yes">_Encrypt my data. I'll set a passphrase later.</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 1 Dialog">_Encrypt my data. I'll set a passphrase later.</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
@@ -289,7 +289,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="options2_cancel_button">
-                <property name="label" translatable="yes">Cancel &amp; _add more disks</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 2 Dialog">Cancel &amp; _add more disks</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -305,7 +305,7 @@
             </child>
             <child>
               <object class="GtkButton" id="options2_custom_button">
-                <property name="label" translatable="yes">_Custom partitioning</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 2 Dialog">_Custom partitioning</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -321,7 +321,7 @@
             </child>
             <child>
               <object class="GtkButton" id="options2_reclaim_button">
-                <property name="label" translatable="yes">_Reclaim space</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 2 Dialog">_Reclaim space</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
@@ -539,7 +539,7 @@
             </child>
             <child>
               <object class="GtkCheckButton" id="encryption2_checkbutton">
-                <property name="label" translatable="yes">_Encrypt my data. I'll set a passphrase later.</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 2 Dialog">_Encrypt my data. I'll set a passphrase later.</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">False</property>
@@ -592,7 +592,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="options3_quit_button">
-                <property name="label" translatable="yes">_Quit installer</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 3 Dialog">_Quit installer</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -608,7 +608,7 @@
             </child>
             <child>
               <object class="GtkButton" id="options3_cancel_button">
-                <property name="label" translatable="yes">_Cancel</property>
+                <property name="label" translatable="yes" context="GUI|Storage|Options 3 Dialog">_Cancel</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="has_focus">True</property>
@@ -1024,7 +1024,7 @@
                                                   <object class="GtkLabel" id="label2">
                                                     <property name="visible">True</property>
                                                     <property name="can_focus">False</property>
-                                                    <property name="label" translatable="yes">_Add a disk...</property>
+                                                    <property name="label" translatable="yes" context="GUI|Storage">_Add a disk...</property>
                                                     <property name="use_underline">True</property>
                                                     <attributes>
                                                       <attribute name="weight" value="bold"/>
@@ -1101,7 +1101,7 @@
                       <object class="GtkLabel" id="label5">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="label" translatable="yes">_Full disk summary and bootloader...</property>
+                        <property name="label" translatable="yes" context="GUI|Storage">_Full disk summary and bootloader...</property>
                         <property name="use_underline">True</property>
                         <attributes>
                           <attribute name="underline" value="True"/>
diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py
index 5b83e7f..9c31d82 100644
--- a/pyanaconda/ui/gui/spokes/storage.py
+++ b/pyanaconda/ui/gui/spokes/storage.py
@@ -61,7 +61,7 @@ from blivet.devicelibs import swap as swap_lib
 from pyanaconda.threads import threadMgr, AnacondaThread
 from pyanaconda.product import productName
 from pyanaconda.flags import flags
-from pyanaconda.i18n import _, N_, P_
+from pyanaconda.i18n import _, C_, CN_, P_
 from pyanaconda import constants
 from pyanaconda.bootloader import BootLoaderError
 
@@ -131,23 +131,26 @@ class InstallOptions1Dialog(GUIObject):
         options_label.set_markup(options_text)
 
         label = self.builder.get_object("options1_autopart_label")
-        label.set_text(_("A_utomatically configure my %(productName)s installation to the "
-                           "disk(s) I selected and return me to the main menu.") %
-                           {"productName": productName})
+        label.set_text(C_("GUI|Storage|Options 1 Dialog",
+            "A_utomatically configure my %(productName)s installation to the "
+            "disk(s) I selected and return me to the main menu.") %
+            {"productName": productName})
         label.set_use_underline(True)
 
         radio = self.builder.get_object("options1_reclaim_radio")
         if self.showReclaim:
             label = self.builder.get_object("options1_reclaim_label")
-            label.set_text(_("I want more space. _Guide me through shrinking and/or removing "
-                               "partitions so I can have more space for %(productName)s.") %
-                               {"productName": productName})
+            label.set_text(C_("GUI|Storage|Options 1 Dialog",
+                "I want more space. _Guide me through shrinking and/or removing "
+                "partitions so I can have more space for %(productName)s.") %
+                {"productName": productName})
             label.set_use_underline(True)
         else:
             radio.hide()
 
         label = self.builder.get_object("options1_custom_label")
-        label.set_text(_("I want to review/_modify my disk partitions before continuing."))
+        label.set_text(C_("GUI|Storage|Options 1 Dialog",
+            "I want to review/_modify my disk partitions before continuing."))
         label.set_use_underline(True)
 
     @property
@@ -339,7 +342,7 @@ class StorageSpoke(NormalSpoke, StorageChecker):
 
     # other candidates: computer-symbolic, folder-symbolic
     icon = "drive-harddisk-symbolic"
-    title = N_("INSTALLATION _DESTINATION")
+    title = CN_("GUI|Spoke", "INSTALLATION _DESTINATION")
 
     def __init__(self, *args, **kwargs):
         StorageChecker.__init__(self)
@@ -916,7 +919,10 @@ class StorageSpoke(NormalSpoke, StorageChecker):
                       "configuration.  You can modify your storage layout or quit the "
                       "installer.")
 
-            dialog = DetailedErrorDialog(self.data, buttons=[_("_Quit"), _("_Modify Storage Layout")], label=label)
+            dialog = DetailedErrorDialog(self.data, buttons=[
+                    C_("GUI|Storage|Error Dialog", "_Quit"),
+                    C_("GUI|Storage|Error Dialog", "_Modify Storage Layout")],
+                label=label)
             with enlightbox(self.window, dialog.window):
                 errors = "\n".join(self.errors)
                 dialog.refresh(errors)
diff --git a/pyanaconda/ui/gui/spokes/user.glade b/pyanaconda/ui/gui/spokes/user.glade
index d2f701f..5408372 100644
--- a/pyanaconda/ui/gui/spokes/user.glade
+++ b/pyanaconda/ui/gui/spokes/user.glade
@@ -61,7 +61,7 @@
                         <property name="can_focus">False</property>
                         <property name="xalign">1</property>
                         <property name="xpad">10</property>
-                        <property name="label" translatable="yes">_Full name</property>
+                        <property name="label" translatable="yes" context="GUI|User">_Full name</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">t_fullname</property>
                         <attributes>
@@ -81,7 +81,7 @@
                         <property name="can_focus">False</property>
                         <property name="xalign">1</property>
                         <property name="xpad">10</property>
-                        <property name="label" translatable="yes">_Username</property>
+                        <property name="label" translatable="yes" context="GUI|User">_Username</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">t_username</property>
                         <attributes>
@@ -132,7 +132,7 @@
                         <property name="can_focus">False</property>
                         <property name="xalign">1</property>
                         <property name="xpad">10</property>
-                        <property name="label" translatable="yes">_Password</property>
+                        <property name="label" translatable="yes" context="GUI|User">_Password</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">t_password</property>
                         <attributes>
@@ -152,7 +152,7 @@
                         <property name="can_focus">False</property>
                         <property name="xalign">1</property>
                         <property name="xpad">10</property>
-                        <property name="label" translatable="yes">_Confirm password</property>
+                        <property name="label" translatable="yes" context="GUI|User">_Confirm password</property>
                         <property name="use_underline">True</property>
                         <property name="mnemonic_widget">t_verifypassword</property>
                         <attributes>
@@ -212,7 +212,7 @@
                     </child>
                     <child>
                       <object class="GtkCheckButton" id="c_usepassword">
-                        <property name="label" translatable="yes">Require a password to use this account</property>
+                        <property name="label" translatable="yes" context="GUI|User">Require a password to use this account</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
@@ -274,7 +274,7 @@
                     </child>
                     <child>
                       <object class="GtkCheckButton" id="c_admin">
-                        <property name="label" translatable="yes">Make this user administrator</property>
+                        <property name="label" translatable="yes" context="GUI|User">Make this user administrator</property>
                         <property name="visible">True</property>
                         <property name="can_focus">True</property>
                         <property name="receives_default">False</property>
@@ -294,7 +294,7 @@
                         <property name="can_focus">False</property>
                         <child>
                           <object class="GtkButton" id="b_advanced">
-                            <property name="label" translatable="yes">_Advanced...</property>
+                            <property name="label" translatable="yes" context="GUI|User">_Advanced...</property>
                             <property name="visible">True</property>
                             <property name="sensitive">False</property>
                             <property name="can_focus">True</property>
diff --git a/pyanaconda/ui/gui/spokes/user.py b/pyanaconda/ui/gui/spokes/user.py
index 591f65b..44fd43c 100644
--- a/pyanaconda/ui/gui/spokes/user.py
+++ b/pyanaconda/ui/gui/spokes/user.py
@@ -19,7 +19,7 @@
 # Red Hat Author(s): Martin Sivak <msivak at redhat.com>
 #
 
-from pyanaconda.i18n import _, N_
+from pyanaconda.i18n import _, CN_
 from pyanaconda.users import cryptPassword, validatePassword, guess_username
 
 from pyanaconda.ui.gui.spokes import NormalSpoke
@@ -199,7 +199,7 @@ class UserSpoke(FirstbootSpokeMixIn, NormalSpoke):
     category = UserSettingsCategory
 
     icon = "avatar-default-symbolic"
-    title = N_("_USER CREATION")
+    title = CN_("GUI|Spoke", "_USER CREATION")
 
     @classmethod
     def should_run(cls, environment, data):
diff --git a/pyanaconda/ui/gui/spokes/welcome.glade b/pyanaconda/ui/gui/spokes/welcome.glade
index 164c5eb..f2a5088 100644
--- a/pyanaconda/ui/gui/spokes/welcome.glade
+++ b/pyanaconda/ui/gui/spokes/welcome.glade
@@ -18,7 +18,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="uhdQuitButton">
-                <property name="label" translatable="yes">_Quit</property>
+                <property name="label" translatable="yes" context="GUI|Welcome|Unsupported Hardware Dialog">_Quit</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -32,7 +32,7 @@
             </child>
             <child>
               <object class="GtkButton" id="uhdContinueButton">
-                <property name="label" translatable="yes">_Continue</property>
+                <property name="label" translatable="yes" context="GUI|Welcome|Unsupported Hardware Dialog">_Continue</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -165,7 +165,7 @@
             <property name="layout_style">end</property>
             <child>
               <object class="GtkButton" id="quitButton">
-                <property name="label" translatable="yes">_Get me out of here!</property>
+                <property name="label" translatable="yes" context="GUI|Welcome|Beta Warn Dialog">_Get me out of here!</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
@@ -179,7 +179,7 @@
             </child>
             <child>
               <object class="GtkButton" id="continueButton">
-                <property name="label" translatable="yes">_I accept my fate.</property>
+                <property name="label" translatable="yes" context="GUI|Welcome|Beta Warn Dialog">_I accept my fate.</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
                 <property name="receives_default">True</property>
-- 
1.8.3.1



More information about the anaconda-patches mailing list