Fix catalog errors

- BAboutWindow: the extra info comes from the app, we can't magically
  translate it here. This adds a new translatable string for Workspaces.
  Other apps (WebPositive and a few outside this repo) pass either
  names, versions, license text or already translated strings.
- Tracker:
  - Icon size selection (eg. 32 × 32) was incorrectly marked and is now
    translatable.
  - Variables incorrectly marked for collection.
  - Two strings got the wrong context, one of which should probably not
    be shown to the user anyway.
- GLInfo: double translation of an already translated string.
- Terminal: collection of variables, but it is all dead code, a leftover
  from an older change.
- Notification prefs: translation of variables, which on top of that
  contain numbers.
- Network prefs, Printers prefs, Cortex, HaikuDepot: translation of
  variables. The values are already marked for collection.
- Devices: translation of variables. This just makes the collection
  process happy, but the app needs a deeper look. Some of the strings
  that are translated here come already translated, some don't and may
  not even be marked for collection, and they seem to be used as key
  value pairs in a public map.

Change-Id: I248f364eaa788cc64ed59b118cfee101b9c56467
Reviewed-on: https://review.haiku-os.org/c/haiku/+/11262
Reviewed-by: Adrien Destugues <[email protected]>
Tested-by: Commit checker robot <[email protected]>
This commit is contained in:
Máximo Castañeda
2026-07-16 14:34:27 +00:00
committed by waddlesplash
parent d4c6110550
commit 28dfca3e15
15 changed files with 38 additions and 67 deletions
+4
View File
@@ -200,6 +200,10 @@ private:
#define B_TRANSLATE_NOCOLLECT(string) \
B_TRANSLATE(string)
#undef B_TRANSLATE_NOCOLLECT_CONTEXT
#define B_TRANSLATE_NOCOLLECT_CONTEXT(string, context) \
B_TRANSLATE_CONTEXT(string, context)
#undef B_TRANSLATE_NOCOLLECT_COMMENT
#define B_TRANSLATE_NOCOLLECT_COMMENT(string, comment) \
B_TRANSLATE_COMMENT(string, comment)
@@ -82,6 +82,9 @@
#undef B_TRANSLATE_NOCOLLECT
#define B_TRANSLATE_NOCOLLECT(string)
#undef B_TRANSLATE_NOCOLLECT_CONTEXT
#define B_TRANSLATE_NOCOLLECT_CONTEXT(string, context)
#undef B_TRANSLATE_NOCOLLECT_COMMENT
#define B_TRANSLATE_NOCOLLECT_COMMENT(string, comment)
@@ -729,8 +729,7 @@ void TransportView::_populateRunModeMenu(
m = new BMessage(NodeGroup::M_SET_RUN_MODE);
m->AddInt32("runMode", n+1);
BMenuItem* i = new BMenuItem(
B_TRANSLATE(_run_mode_strings[n]), m);
BMenuItem* i = new BMenuItem(B_TRANSLATE_NOCOLLECT(_run_mode_strings[n]), m);
menu->AddItem(i);
_addGroupTarget(i);
}
+7 -7
View File
@@ -61,10 +61,10 @@ Device::Device(Device* physicalParent, BusType busType, Category category,
fCategory(category),
fPhysicalParent(physicalParent)
{
SetAttribute(B_TRANSLATE("Device name"), B_TRANSLATE(name));
SetAttribute(B_TRANSLATE("Manufacturer"), B_TRANSLATE(manufacturer));
SetAttribute(B_TRANSLATE("Driver used"), B_TRANSLATE(driverUsed));
SetAttribute(B_TRANSLATE("Device paths"), B_TRANSLATE(devPathsPublished));
SetAttribute(B_TRANSLATE("Device name"), B_TRANSLATE_NOCOLLECT(name));
SetAttribute(B_TRANSLATE("Manufacturer"), B_TRANSLATE_NOCOLLECT(manufacturer));
SetAttribute(B_TRANSLATE("Driver used"), B_TRANSLATE_NOCOLLECT(driverUsed));
SetAttribute(B_TRANSLATE("Device paths"), B_TRANSLATE_NOCOLLECT(devPathsPublished));
}
@@ -89,7 +89,7 @@ Device::GetManufacturer() const
AttributeMapIterator it = fAttributeMap.find(B_TRANSLATE("Manufacturer"));
if (it != fAttributeMap.end())
return it->second;
return BString("Unknown");
return BString("unknown");
}
@@ -99,7 +99,7 @@ Device::GetDriverUsed() const
AttributeMapIterator it = fAttributeMap.find(B_TRANSLATE("Driver used"));
if (it != fAttributeMap.end())
return it->second;
return BString("Unknown");
return BString("unknown");
}
@@ -109,7 +109,7 @@ Device::GetDevPathsPublished() const
AttributeMapIterator it = fAttributeMap.find(B_TRANSLATE("Device paths"));
if (it != fAttributeMap.end())
return it->second;
return BString("Unknown");
return BString("unknown");
}
+5 -5
View File
@@ -47,13 +47,13 @@ package_state_to_string(PackageInfoRef package)
switch (PackageUtils::State(package)) {
case NONE:
return B_TRANSLATE(skPackageStateAvailable);
return B_TRANSLATE_NOCOLLECT(skPackageStateAvailable);
case INSTALLED:
return B_TRANSLATE(skPackageStateInactive);
return B_TRANSLATE_NOCOLLECT(skPackageStateInactive);
case ACTIVATED:
return B_TRANSLATE(skPackageStateActive);
return B_TRANSLATE_NOCOLLECT(skPackageStateActive);
case UNINSTALLED:
return B_TRANSLATE(skPackageStateUninstalled);
return B_TRANSLATE_NOCOLLECT(skPackageStateUninstalled);
case DOWNLOADING:
{
BString data;
@@ -65,7 +65,7 @@ package_state_to_string(PackageInfoRef package)
return data;
}
case PENDING:
return B_TRANSLATE(skPackageStatePending);
return B_TRANSLATE_NOCOLLECT(skPackageStatePending);
}
return B_TRANSLATE("Unknown");
-27
View File
@@ -16,7 +16,6 @@
#include <CharacterSet.h>
#include <CharacterSetRoster.h>
#include <CheckBox.h>
#include <ColorControl.h>
#include <LayoutBuilder.h>
#include <Locale.h>
#include <Menu.h>
@@ -26,7 +25,6 @@
#include <TextControl.h>
#include <View.h>
#include "Colors.h"
#include "Globals.h"
#include "PrefHandler.h"
#include "TermConst.h"
@@ -434,31 +432,6 @@ AppearancePrefView::_MakeFontSizeMenu(const char* label, uint32 command,
}
/*static*/ BPopUpMenu*
AppearancePrefView::_MakeMenu(uint32 msg, const char** items,
const char* defaultItemName)
{
BPopUpMenu* menu = new BPopUpMenu("");
while (*items) {
if (strcmp((*items), "") == 0)
menu->AddSeparatorItem();
else {
BMessage* message = new BMessage(msg);
message->AddString("label", *items);
BMenuItem* item = new BMenuItem(B_TRANSLATE(*items), message);
menu->AddItem(item);
if (strcmp(*items, defaultItemName) == 0)
item->SetMarked(true);
}
items++;
}
return menu;
}
void
AppearancePrefView::_MarkSelectedFont(const char* family, const char* style,
const char* size)
-3
View File
@@ -64,9 +64,6 @@ private:
const char* style,
const char* size);
static BPopUpMenu* _MakeMenu(uint32 msg, const char** items,
const char* defaultItem);
void _MarkSelectedFont(const char* family,
const char* style, const char* size);
+2 -4
View File
@@ -410,13 +410,11 @@ WorkspacesView::_AboutRequested()
NULL
};
const char* extraInfo = "Send windows behind using the Option key. "
"Move windows to front using the Control key.\n";
window->AddCopyright(2002, "Haiku, Inc.",
extraCopyrights);
window->AddAuthors(authors);
window->AddExtraInfo(extraInfo);
window->AddExtraInfo(B_TRANSLATE("Send windows behind using the Option key. "
"Move windows to front using the Control key.\n"));
window->Show();
}
+1 -4
View File
@@ -553,14 +553,11 @@ BAboutWindow::AddExtraInfo(const char* extraInfo)
if (extraInfo == NULL)
return;
const char* appExtraInfo = B_TRANSLATE_MARK(extraInfo);
appExtraInfo = gSystemCatalog.GetString(extraInfo, "AboutWindow");
BString extra("");
if (fAboutView->InfoView()->TextLength() > 0)
extra << "\n\n";
extra << appExtraInfo;
extra << extraInfo;
fAboutView->InfoView()->Insert(extra.String());
}
+2 -3
View File
@@ -1820,14 +1820,13 @@ BContainerWindow::AddIconSizeMenu(BMenu* menu)
static const uint32 kIconSizes[] = { 32, 40, 48, 64, 96, 128 };
BString label;
const char* format;
const char* comment = "The '×' is the Unicode multiplication sign U+00D7";
const char* format = B_TRANSLATE_COMMENT("%" B_PRId32 " × %" B_PRId32,
"The '×' is the Unicode multiplication sign U+00D7");
uint32 iconSize;
for (uint32 i = 0; i < sizeof(kIconSizes) / sizeof(uint32); ++i) {
iconSize = kIconSizes[i];
message = new BMessage(kIconMode);
message->AddInt32("size", iconSize);
format = B_TRANSLATE_COMMENT("%" B_PRId32 " × %" B_PRId32, comment);
label.SetToFormat(format, iconSize, iconSize);
item = new BMenuItem(label, message);
item->SetTarget(PoseView());
+5 -1
View File
@@ -225,7 +225,7 @@ mkColumnsBits(BMallocIO& stream, const ColumnData* src, int32 nelm,
{
for (int32 i = 0; i < nelm; i++) {
BColumn c(
B_TRANSLATE_CONTEXT(src[i].title, context),
B_TRANSLATE_NOCOLLECT_CONTEXT(src[i].title, context),
src[i].width, src[i].align, src[i].attributeName,
src[i].attrType, src[i].statField, src[i].editable);
c.SetOffset(src[i].offset);
@@ -662,6 +662,10 @@ TTracker::InstallDefaultTemplates()
};
#undef B_TRANSLATION_CONTEXT
#define B_TRANSLATION_CONTEXT "TrackerInitialState"
BNode node;
BString query(kQueryTemplates);
query += "/application_octet-stream";
+4 -4
View File
@@ -56,8 +56,8 @@ ServiceListItem::DrawItem(BView* owner, BRect bounds, bool complete)
owner->FillRect(bounds);
}
const char* stateText = fEnabled ? B_TRANSLATE(kEnabledState)
: B_TRANSLATE(kDisabledState);
const char* stateText
= fEnabled ? B_TRANSLATE_NOCOLLECT(kEnabledState) : B_TRANSLATE_NOCOLLECT(kDisabledState);
// Set the initial bounds of item contents
BPoint statePoint = bounds.RightTop() + BPoint(0, fLineOffset)
@@ -101,8 +101,8 @@ ServiceListItem::Update(BView* owner, const BFont* font)
fLineOffset = 2 + ceilf(height.ascent + height.leading / 2);
float maxStateWidth = std::max(font->StringWidth(B_TRANSLATE(kEnabledState)),
font->StringWidth(B_TRANSLATE(kDisabledState)));
float maxStateWidth = std::max(font->StringWidth(B_TRANSLATE_NOCOLLECT(kEnabledState)),
font->StringWidth(B_TRANSLATE_NOCOLLECT(kDisabledState)));
SetWidth(font->StringWidth(fLabel)
+ 3 * be_control_look->DefaultLabelSpacing() + maxStateWidth);
SetHeight(4 + ceilf(height.ascent + height.leading + height.descent));
@@ -98,9 +98,7 @@ GeneralView::GeneralView(SettingsHost* host)
minLabel << kMinimumTimeout;
BString maxLabel;
maxLabel << kMaximumTimeout;
fDurationSlider->SetLimitLabels(
B_TRANSLATE_COMMENT(minLabel.String(), "Slider low text"),
B_TRANSLATE_COMMENT(maxLabel.String(), "Slider high text"));
fDurationSlider->SetLimitLabels(minLabel.String(), maxLabel.String());
// Notification Position
fPositionMenu = new BPopUpMenu(B_TRANSLATE("Follow Deskbar"));
+2 -3
View File
@@ -281,9 +281,8 @@ TestPageView::AttachedToWindow()
gradients.View()->SetViewColor(B_TRANSPARENT_COLOR);
for (int i = 0; i < kNumColorGradients; ++i) {
BStringView* label = new BStringView(
kColorGradients[i].name,
B_TRANSLATE(kColorGradients[i].name));
BStringView* label = new BStringView(kColorGradients[i].name,
B_TRANSLATE_NOCOLLECT(kColorGradients[i].name));
// label->SetAlignment(B_ALIGN_RIGHT);
gradients.Add(label, 0, i);
gradients.Add(new ColorGradientView(kColorGradients[i].color), 1, i);
@@ -123,7 +123,7 @@ BRow*
CapabilitiesView::_CreateCapabilitiesRow(GLenum capability, const char* name)
{
BRow* row = new BRow();
row->SetField(new BStringField(B_TRANSLATE(name)), 0);
row->SetField(new BStringField(name), 0);
int value = 0;
glGetIntegerv(capability, &value);