libyui-gtk-pkg  2.43.2
 All Classes
yzypptags.cc
1 /********************************************************************
2  * YaST2-GTK - http://en.opensuse.org/YaST2-GTK *
3  ********************************************************************/
4 /* Tags PackageKit translator */
5 // check the header file for information about this translator
6 
7 /*
8  Textdomain "gtk"
9  */
10 
11 #include "YGi18n.h"
12 #define YUILogComponent "gtk-pkg"
13 #include <YUILog.h>
14 #include "yzypptags.h"
15 #include <string>
16 
17 /**
18  * translations taken from packagekit
19  **/
20 const char *
21 zypp_tag_group_enum_to_localised_text (YPkgGroupEnum group)
22 {
23  switch (group) {
24  case YPKG_GROUP_EDUCATION: return _( "Education" );
25  case YPKG_GROUP_GAMES: return _( "Games" );
26  case YPKG_GROUP_GRAPHICS: return _( "Graphics" );
27  case YPKG_GROUP_OFFICE: return _( "Office" );
28  case YPKG_GROUP_PROGRAMMING: return _( "Programming" );
29  case YPKG_GROUP_MULTIMEDIA: return _( "Multimedia" );
30  case YPKG_GROUP_SYSTEM: return _( "System" );
31  // Translators: keep translation short
32  case YPKG_GROUP_DESKTOP_GNOME: return _( "Desktop (GNOME)" );
33  // Translators: keep translation short
34  case YPKG_GROUP_DESKTOP_KDE: return _( "Desktop (KDE)" );
35  // Translators: keep translation short
36  case YPKG_GROUP_DESKTOP_XFCE: return _( "Desktop (XFCE)" );
37  // Translators: keep translation short
38  case YPKG_GROUP_DESKTOP_OTHER: return _( "Desktop (Others)" );
39  case YPKG_GROUP_PUBLISHING: return _( "Publishing" );
40  // Translators: keep translation short
41  case YPKG_GROUP_ADMIN_TOOLS: return _( "Admin Tools" );
42  case YPKG_GROUP_LOCALIZATION: return _( "Localization" );
43  case YPKG_GROUP_SECURITY: return _( "Security" );
44  case YPKG_GROUP_COMMUNICATION: return _( "Communication" );
45  case YPKG_GROUP_NETWORK: return _( "Network" );
46  case YPKG_GROUP_DOCUMENTATION: return _( "Documentation" );
47  case YPKG_GROUP_UTILITIES: return _( "Utilities" );
48 
49  case YPKG_GROUP_UNKNOWN: return _( "Unknown" );
50  case YPKG_GROUP_SUGGESTED: return _( "Suggested" );
51  case YPKG_GROUP_RECOMMENDED: return _( "Recommended" );
52  // Translators: this refers to packages no longer available in any repository.
53  case YPKG_GROUP_ORPHANED: return _( "Unmaintained" );
54  case YPKG_GROUP_RECENT: return _( "Recent" );
55  case YPKG_GROUP_MULTIVERSION: return _( "Multiversion" );
56  case YPKG_GROUP_TOTAL: break;
57  }
58  return "";
59 }
60 
61 const char *
62 zypp_tag_enum_to_icon (YPkgGroupEnum group)
63 {
64  // mosts icons are from /usr/share/icons/hicolor/32x32/apps/package*
65  switch (group)
66  {
67  case YPKG_GROUP_EDUCATION: return( "package_edutainment" );
68  case YPKG_GROUP_GAMES: return( "package_games" );
69  case YPKG_GROUP_GRAPHICS: return( "package_graphics" );
70  case YPKG_GROUP_OFFICE: return( "applications-office" );
71  case YPKG_GROUP_PROGRAMMING: return( "package_development" );
72  case YPKG_GROUP_MULTIMEDIA: return( "package_multimedia" );
73  case YPKG_GROUP_SYSTEM: return( "applications-system" );
74  case YPKG_GROUP_DESKTOP_GNOME: return( "pattern-gnome" );
75  case YPKG_GROUP_DESKTOP_KDE: return( "pattern-kde" );
76  case YPKG_GROUP_DESKTOP_XFCE: return( "pattern-xfce" );
77  case YPKG_GROUP_DESKTOP_OTHER: return( "user-desktop" );
78  case YPKG_GROUP_PUBLISHING: return( "package_office_projectmanagement" );
79  case YPKG_GROUP_ADMIN_TOOLS: return( "yast-sysconfig" );
80  case YPKG_GROUP_LOCALIZATION: return( "yast-language" );
81  case YPKG_GROUP_SECURITY: return( "yast-security" );
82  case YPKG_GROUP_COMMUNICATION: return( "yast-modem" );
83  case YPKG_GROUP_NETWORK: return( "package_network" );
84  case YPKG_GROUP_DOCUMENTATION: return( "package_documentation" );
85  case YPKG_GROUP_UTILITIES: return( "package_utilities" );
86 
87  case YPKG_GROUP_SUGGESTED: return( "gtk-about" );
88  case YPKG_GROUP_RECOMMENDED: return( "gtk-about" );
89  case YPKG_GROUP_ORPHANED: return( "gtk-missing-image" );
90  case YPKG_GROUP_RECENT: return( "gtk-new" );
91  case YPKG_GROUP_MULTIVERSION: return( "gtk-dnd-multiple" );
92  case YPKG_GROUP_UNKNOWN: return( "package_main" );
93 
94  case YPKG_GROUP_TOTAL: break;
95  }
96  return "";
97 }
98 
99 YPkgGroupEnum
100 zypp_tag_convert (const std::string &groupu)
101 {
102  std::string group (groupu); // lower-case
103  for (unsigned int i = 0; i < group.length(); i++)
104  if (group[i] >= 'A' && group[i] <= 'Z')
105  group[i] = group[i] - 'A' + 'a';
106 
107  // yast2-qt: (modified to speed up)
108  if (group.compare (0, 22, "productivity/archiving") == 0) return YPKG_GROUP_ADMIN_TOOLS;
109  if (group.compare (0, 23, "productivity/clustering") == 0) return YPKG_GROUP_ADMIN_TOOLS;
110  if (group.compare (0, 22, "productivity/databases") == 0) return YPKG_GROUP_ADMIN_TOOLS;
111  if (group.compare (0, 17, "system/monitoring") == 0) return YPKG_GROUP_ADMIN_TOOLS;
112  if (group.compare (0, 17, "system/management") == 0) return YPKG_GROUP_ADMIN_TOOLS;
113  if (group.compare (0, 23, "productivity/publishing") == 0) return YPKG_GROUP_PUBLISHING;
114  if (group.compare (0, 22, "productivity/telephony") == 0) return YPKG_GROUP_COMMUNICATION;
115  if (group.compare (0, 19, "amusements/teaching") == 0) return YPKG_GROUP_EDUCATION;
116  if (group.compare (0, 17, "publishing/office") == 0) return YPKG_GROUP_OFFICE;
117  if (group.compare (0, 17, "productivity/text") == 0) return YPKG_GROUP_OFFICE;
118  if (group.compare (0, 20, "productivity/editors") == 0) return YPKG_GROUP_OFFICE;
119  if (group.compare (0, 21, "productivity/graphics") == 0) return YPKG_GROUP_GRAPHICS;
120  if (group.compare (0, 10, "amusements") == 0) return YPKG_GROUP_GAMES;
121  if (group.compare (0, 19, "system/localization") == 0) return YPKG_GROUP_LOCALIZATION;
122  if (group.compare (0, 11, "development") == 0) return YPKG_GROUP_PROGRAMMING;
123  if (group.compare (0, 20, "productivity/network") == 0) return YPKG_GROUP_NETWORK;
124  if (group.compare (0, 21, "productivity/security") == 0) return YPKG_GROUP_SECURITY;
125  if (group.compare (0, 16, "system/gui/gnome") == 0) return YPKG_GROUP_DESKTOP_GNOME;
126  if (group.compare (0, 14, "system/gui/kde") == 0) return YPKG_GROUP_DESKTOP_KDE;
127  if (group.compare (0, 15, "system/gui/xfce") == 0) return YPKG_GROUP_DESKTOP_XFCE;
128  if (group.compare (0, 10, "system/gui") == 0) return YPKG_GROUP_DESKTOP_OTHER;
129  if (group.compare (0, 8, "hardware") == 0) return YPKG_GROUP_SYSTEM;
130  if (group.compare (0, 6, "system") == 0) return YPKG_GROUP_SYSTEM;
131  if (group.find ("scientific") != std::string::npos) return YPKG_GROUP_EDUCATION;
132  if (group.find ("multimedia") != std::string::npos) return YPKG_GROUP_MULTIMEDIA;
133 
134  // our own:
135  if (group.compare (0, 13, "documentation") == 0) return YPKG_GROUP_DOCUMENTATION;
136  if (group.compare (0, 12, "productivity") == 0) return YPKG_GROUP_UTILITIES;
137  return YPKG_GROUP_UNKNOWN;
138 }
139