You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
6.0 KiB
156 lines
6.0 KiB
/***************************************************************************
|
|
|
|
manage usage labels
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
begin : Fri Mar 31 20:50:53 MET 1999
|
|
|
|
copyright : (C) 1999-2001 Ewald Arnold
|
|
(C) 2001 The KDE-EDU team
|
|
email : kvoctrain@ewald-arnold.de
|
|
|
|
-----------------------------------------------------------------------
|
|
|
|
|
|
***************************************************************************/
|
|
|
|
/***************************************************************************
|
|
* *
|
|
* This program is free software; you can redistribute it and/or modify *
|
|
* it under the terms of the GNU General Public License as published by *
|
|
* the Free Software Foundation; either version 2 of the License, or *
|
|
* (at your option) any later version. *
|
|
* *
|
|
***************************************************************************/
|
|
|
|
#include "UsageManager.h"
|
|
|
|
#include <tdelocale.h>
|
|
|
|
|
|
#include <iostream>
|
|
#include <vector>
|
|
using namespace std;
|
|
|
|
vector<TQString> UsageManager::userUsages;
|
|
|
|
// user usages are strings like this: #1
|
|
|
|
struct internalRelation_t
|
|
{
|
|
const char *ident,
|
|
*context,
|
|
*shortid,
|
|
*longId;
|
|
};
|
|
|
|
#ifndef I18N_NOOP2
|
|
#define I18N_NOOP2(context, str) context, str
|
|
#endif
|
|
|
|
static internalRelation_t InternalUsageRelations [] =
|
|
{
|
|
{ UL_AM, 0, I18N_NOOP("Am."), I18N_NOOP("Americanism")},
|
|
{ UL_ABBR, 0, I18N_NOOP("abbr."), I18N_NOOP("abbreviation")},
|
|
{ UL_ANAT, 0, I18N_NOOP("anat."), I18N_NOOP("anatomy")},
|
|
{ UL_ASTR, 0, I18N_NOOP("astr."), I18N_NOOP("astronomy")},
|
|
{ UL_BIOL, 0, I18N_NOOP("biol."), I18N_NOOP("biology")},
|
|
{ UL_BS, 0, I18N_NOOP("b.s."), I18N_NOOP("bad sense")},
|
|
{ UL_CONTP, 0, I18N_NOOP("contp."), I18N_NOOP("contemptuously")},
|
|
{ UL_ECCL, 0, I18N_NOOP("eccl."), I18N_NOOP("ecclesiastical")},
|
|
{ UL_FIG, 0, I18N_NOOP("fig."), I18N_NOOP("figuratively")},
|
|
{ UL_GEOL, 0, I18N_NOOP("geol."), I18N_NOOP("geology")},
|
|
{ UL_HIST, 0, I18N_NOOP("hist."), I18N_NOOP("historical")},
|
|
{ UL_ICHT, 0, I18N_NOOP("icht."), I18N_NOOP("ichthyology")},
|
|
{ UL_IFML, 0, I18N_NOOP("ifml."), I18N_NOOP("informal")},
|
|
{ UL_IRONIC, 0, I18N_NOOP("iro."), I18N_NOOP("ironic")},
|
|
{ UL_IRR, 0, I18N_NOOP("irr."), I18N_NOOP("irregular")},
|
|
{ UL_LIT, 0, I18N_NOOP("lit."), I18N_NOOP("literary")},
|
|
{ UL_META, 0, I18N_NOOP("metall."), I18N_NOOP("metallurgy")},
|
|
{ UL_METEO, 0, I18N_NOOP("meteor."), I18N_NOOP("meteorology")},
|
|
{ UL_MIN, 0, I18N_NOOP("min."), I18N_NOOP("mineralogy")},
|
|
{ UL_MOT, 0, I18N_NOOP("mot."), I18N_NOOP("motoring")},
|
|
{ UL_MOUNT, 0, I18N_NOOP("mount."), I18N_NOOP("mountaineering")},
|
|
{ UL_MYT, 0, I18N_NOOP("myth."), I18N_NOOP("mythology")},
|
|
{ UL_NPR, 0, I18N_NOOP2("abbreviation: proper name", "npr."), I18N_NOOP("proper name")},
|
|
{ UL_OPT, 0, I18N_NOOP("opt."), I18N_NOOP("optics")},
|
|
{ UL_ORN, 0, I18N_NOOP("orn."), I18N_NOOP("ornithology")},
|
|
{ UL_OS, 0, I18N_NOOP("o.s."), I18N_NOOP("oneself")},
|
|
{ UL_P, 0, I18N_NOOP("pers."), I18N_NOOP("person")},
|
|
{ UL_PARL, 0, I18N_NOOP("parl."), I18N_NOOP("parliamentary")},
|
|
{ UL_PHARM, 0, I18N_NOOP("pharm."), I18N_NOOP("pharmacy")},
|
|
{ UL_PHLS, 0, I18N_NOOP("phls."), I18N_NOOP("philosophy")},
|
|
{ UL_PHOT, 0, I18N_NOOP("phot."), I18N_NOOP("photography")},
|
|
{ UL_PHYS, 0, I18N_NOOP("phys."), I18N_NOOP("physics")},
|
|
{ UL_PHYSIOL, 0, I18N_NOOP("physiol."), I18N_NOOP("physiology")},
|
|
{ UL_PL, 0, I18N_NOOP("pl."), I18N_NOOP("plural")},
|
|
{ UL_POET, 0, I18N_NOOP("poet."), I18N_NOOP("poetry")},
|
|
{ UL_POL, 0, I18N_NOOP("pol."), I18N_NOOP("politics")},
|
|
{ UL_PROV, 0, I18N_NOOP("prov."), I18N_NOOP("provincialism")},
|
|
{ UL_PSYCH, 0, I18N_NOOP("psych."), I18N_NOOP("psychology")},
|
|
{ UL_RHET, 0, I18N_NOOP("rhet."), I18N_NOOP("rhetoric")},
|
|
{ UL_SURV, 0, I18N_NOOP("surv."), I18N_NOOP("surveying")},
|
|
{ UL_TEL, 0, I18N_NOOP("tel."), I18N_NOOP("telegraphy")},
|
|
{ UL_TELEPH, 0, I18N_NOOP("teleph."), I18N_NOOP("telephony")},
|
|
{ UL_THEA, 0, I18N_NOOP("thea."), I18N_NOOP("theater")},
|
|
{ UL_TYP, 0, I18N_NOOP("typ."), I18N_NOOP("typography")},
|
|
{ UL_UNIV, 0, I18N_NOOP("univ."), I18N_NOOP("university")},
|
|
{ UL_VET, 0, I18N_NOOP("vet."), I18N_NOOP("veterinary medicine")},
|
|
{ UL_ZO, 0, I18N_NOOP("zo."), I18N_NOOP("zoology")},
|
|
//{ UL_, 0, I18N_NOOP(""), I18N_NOOP("")},
|
|
{ 0, 0, 0, 0 } // the end
|
|
};
|
|
|
|
|
|
UsageManager::UsageManager ()
|
|
{
|
|
}
|
|
|
|
|
|
vector<UsageRelation> UsageManager::getRelation ()
|
|
{
|
|
vector<UsageRelation> vec;
|
|
for (int i = 0; i < (int) userUsages.size(); i++) {
|
|
TQString s;
|
|
s.setNum(i+1);
|
|
s.insert(0, UL_USER_USAGE);
|
|
vec.push_back(UsageRelation(s, userUsages[i], userUsages[i]));
|
|
}
|
|
|
|
internalRelation_t *usage = InternalUsageRelations;
|
|
while (usage->ident != 0) {
|
|
TQString s;
|
|
if (usage->context == 0)
|
|
s = i18n(usage->shortid);
|
|
else
|
|
s = i18n(usage->context, usage->shortid);
|
|
vec.push_back(UsageRelation(usage->ident,
|
|
s,
|
|
i18n(usage->longId)));
|
|
usage++;
|
|
}
|
|
|
|
return vec;
|
|
}
|
|
|
|
|
|
bool UsageManager::contains (const TQString& label, const TQString& collection)
|
|
{
|
|
TQString s = collection;
|
|
int pos;
|
|
while ((pos = s.find(UL_USAGE_DIV)) >= 0) {
|
|
if (s.left(pos) == label)
|
|
return true;
|
|
s.remove (0, pos+1);
|
|
}
|
|
|
|
return s == label;
|
|
}
|
|
|
|
|
|
void UsageManager::setUsageNames (vector<TQString> names)
|
|
{
|
|
userUsages = names;
|
|
}
|