New translations added. New dialog to configure Locales. Bug fixes.

This commit is contained in:
claur 2021-01-08 00:59:12 +01:00
parent 9c4aea639d
commit 18695ec399
50 changed files with 18319 additions and 5470 deletions

View file

@ -27,19 +27,19 @@ macapp=ProjectLibre.app
wixbuild=projectlibre_wix
version_name=1.9.2
version=1.9.2
version_name=1.9.3
version=1.9.3
#windows
numericVersion3=1.9.2
numericVersion3=1.9.3
#mac
numericVersion4=1.9.2.0
numericVersion4=1.9.3.0
#Linux
rpm_version=1.9.2
rpm_version=1.9.3
rpm_revision=1
deb_version=1.9.2
deb_version=1.9.3
deb_revision=1
#rpm_builds=redhat,suse,mageia

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -29,5 +29,6 @@
<classpathentry kind="lib" path="/projectlibre_contrib/lib/l2fprod-common-totd.jar"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/nachocalendar.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/3"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/exchange/jaxb-api.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -1,7 +1,13 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=1.6

View file

@ -95,4 +95,6 @@ public class Settings {
public static boolean SHOW_HELP_LINKS = true;
public static String VERSION_TYPE_STANDALONE="standalone";
public static String VERSION_TYPE_SERVER="server";
public static String LANGUAGES = "default"; //defaults are set in configuration.xml
}

View file

@ -90,6 +90,13 @@
<name>com.projectlibre1.util.SpecialDateFormat.DATE_FORMAT</name>
<value>EEE MM/dd/yy H:mm</value>
</String>
<String>
<name>
com.projectlibre1.configuration.Settings.LANGUAGES
</name>
<value>default;ar;cs;da;de;el;en;es;fa;fi;fr;gl;hi;it;ja;kh;km;ko;nl;pt;ru;sk;sv;ta;th;tr;uk;ur;vi;zh</value>
</String>
</constants>

View file

@ -57,9 +57,19 @@ package com.projectlibre1.preference;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Locale;
import java.util.Properties;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
import java.util.StringTokenizer;
import java.util.prefs.Preferences;
import com.projectlibre1.session.FileHelper;
public class ConfigurationFile {
@ -86,6 +96,12 @@ public class ConfigurationFile {
private static final String OPENPROJ_CONF_FILE="projectlibre.conf";
private static Properties confProps;
public static String getProperty(String key){
if ("locale".equals(key)) {
String locale=Preferences.userNodeForPackage(ConfigurationFile.class).get("locale","default");
if (!"default".equals(locale)) {
return locale;
}
}
if (confProps==null){
File confDir=getConfDir();
if (confDir==null) return null;
@ -106,15 +122,20 @@ public class ConfigurationFile {
if (locale==null){
String l=getProperty("locale");
if (l==null) locale=Locale.getDefault();
else{
else locale=getLocale(l);
}
return locale;
}
public static Locale getLocale(String code){
Locale defaultLocale=Locale.getDefault();
String language=null;
String country=null;
String variant=null;
StringTokenizer st=new StringTokenizer(l,"_-");
if (!st.hasMoreTokens()) locale=Locale.getDefault();
StringTokenizer st=new StringTokenizer(code,"_-");
if (!st.hasMoreTokens()) locale=defaultLocale;
else{
language=st.nextToken();
if (!st.hasMoreTokens()) locale=new Locale(language);
if (!st.hasMoreTokens()) locale=new Locale(language,defaultLocale.getCountry());
else{
country=st.nextToken();
if (!st.hasMoreTokens()) locale=new Locale(language,country);
@ -126,12 +147,30 @@ public class ConfigurationFile {
}
}
}
}
return locale;
}
public static String[] getLocaleCodes(String code){
Locale defaultLocale=Locale.getDefault();
String language=null;
String country=null;
String variant=null;
StringTokenizer st=new StringTokenizer(code,"_-");
if (!st.hasMoreTokens()) locale=defaultLocale;
else{
language=st.nextToken();
if (!st.hasMoreTokens()) locale=new Locale(language,defaultLocale.getCountry());
else{
country=st.nextToken();
if (!st.hasMoreTokens()) locale=new Locale(language,country);
else{
variant=st.nextToken();
}
}
}
return new String[] {language, country, variant};
}
private static final String OPENPROJ_RUN_CONF_FILE="run.conf";
private static Properties runProps;
@ -151,5 +190,64 @@ public class ConfigurationFile {
return runProps.getProperty(key);
}
public static File getGeneratedDirectory(String externalDirectory) {
File directory=new File(externalDirectory,"import");
return directory.isDirectory()?directory:null;
// File directory=null;
// Preferences pref=Preferences.userNodeForPackage(ConfigurationFile.class);
// if (pref.getBoolean("useExternalLocales",false)) {
// String dir=pref.get("externalLocalesDirectory","");
// directory=new File(dir,"generated");
// if (!directory.isDirectory())
// return null;
// }
// return directory;
}
public static File getExportDirectory(String externalDirectory) {
File directory=new File(externalDirectory,"export");
return directory.isDirectory()?directory:null;
}
public static ResourceBundle getDirectoryBundle(String name) {
File directory=null;
Preferences pref=Preferences.userNodeForPackage(ConfigurationFile.class);
if (pref.getBoolean("useExternalLocales",false)) {
String dir=pref.get("externalLocalesDirectory","");
directory=new File(dir,"import");
if (!directory.isDirectory())
return null;
}
// if (directory==null)
// directory=getConfDir();
try {
URL[] urls={directory.toURI().toURL()};
ClassLoader cl=new URLClassLoader(urls);
ResourceBundle rb=ResourceBundle.getBundle(name, Locale.getDefault(), cl);
return rb;
} catch (MalformedURLException e1) {
e1.printStackTrace();
}
// Locale locale=Locale.getDefault();
// try {
//// FileReader in = new FileReader(dir+File.separator+"client_"+locale+".properties");
// FileInputStream in = new FileInputStream(dir+File.separator+name+"_"+locale+".properties");
// return new PropertyResourceBundle(in);
// } catch (FileNotFoundException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// } catch (IOException e) {
// // TODO Auto-generated catch block
// e.printStackTrace();
// }
return null;
}
}

View file

@ -60,6 +60,7 @@ import java.io.DataInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Locale;
import com.projectlibre1.preference.ConfigurationFile;
@ -82,13 +83,14 @@ public class DirectoryClassLoader extends ClassLoader{
protected Class findClass(String name) throws ClassNotFoundException{
if (directory==null) throw new ClassNotFoundException(name);
try {
File file = new File(directory, name);
File file = new File(directory, name+".properties");
DataInputStream in = new DataInputStream(new FileInputStream(file));
byte b[] = new byte[(int)file.length()];
in.readFully(b);
in.close();
return defineClass(name, b, 0, b.length);
} catch (Exception e) {
e.printStackTrace();
throw new ClassNotFoundException(name);
}
@ -96,7 +98,7 @@ public class DirectoryClassLoader extends ClassLoader{
public InputStream getResourceAsStream(String name) { //used by resourceBundle
if (directory==null) return null;
try {
File file = new File(directory, name);
File file = new File(directory, name+"_"+Locale.getDefault()+".properties");
DataInputStream in = new DataInputStream(new FileInputStream(file));
return in;
} catch (Exception e) {

View file

@ -56,11 +56,8 @@
package com.projectlibre1.strings;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
import java.util.Locale;
import java.util.MissingResourceException;
import java.util.Properties;
@ -68,8 +65,7 @@ import java.util.ResourceBundle;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;
import org.apache.commons.collections.CollectionUtils;
import com.projectlibre1.preference.ConfigurationFile;
import com.projectlibre1.util.ClassLoaderUtils;
import com.projectlibre1.util.Environment;
@ -99,7 +95,6 @@ public class Messages {
}
static LinkedList<ResourceBundle> bundles = null;
static DirectoryClassLoader directoryClassLoader=new DirectoryClassLoader();
static Lock lock=new ReentrantLock();
private static ResourceBundle[] bundleArray = null;
@ -114,32 +109,39 @@ public class Messages {
if (bundles==null){ //if it hasn't been initialized by an other thread
String bundleNames[] = getMetaString("ResourceBundles").split(";");
String directoryBundleNames[] = getMetaString("DirectoryResourceBundles").split(";");
if (directoryClassLoader.isValid()){
//foundBundles=new ArrayList<String>(bundleNames.length+directoryBundleNames.length);
for (int i =0; i < directoryBundleNames.length;i++) {
try {
ResourceBundle bundle=ResourceBundle.getBundle(directoryBundleNames[i],Locale.getDefault(),directoryClassLoader);
ResourceBundle bundle=ConfigurationFile.getDirectoryBundle(directoryBundleNames[i]);
if (bundle==null)
continue;
buns.add(bundle);
foundBundles.add("com.projectlibre1.strings."+directoryBundleNames[i]);
}catch (Exception e) {}
}catch (Exception e) {
e.printStackTrace();
}
}else buns=new LinkedList<ResourceBundle>();
}
for (int i =bundleNames.length-1; i >=0; i--) { // reverse order since the later ones should be searched first
String bname=bundleNames[i];
//find right position to insert in bundles
int j=0;
int pos=0;
boolean found=false;
for (String b : foundBundles){
if (bname.equals(b))
if (bname.equals(b)) {
found=true;
break;
}
pos++;
}
if (!found) {
buns.add(pos,ResourceBundle.getBundle(bname,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader()/*Messages.class.getClassLoader()*/));
foundBundles.add(pos,bname);
}
}
}
} finally {
bundles = buns;
lock.unlock();

View file

@ -1229,3 +1229,23 @@ T_VIEW=View
Message.saveError=An error occured while saving.
Message.saveErrorTmpFile=An error occured while saving. The new file has been saved as:
Message.localeChange=Locale change will take effect at restart
Message.badLocaleDirectory=Locale directory is invalid
Text.Language=Language:
Text.Locales=Locales:
Text.Country=Country:
Text.DefaultLocale=default
Text.ExternalLocale=Custom locales
Text.ExternalLocaleUse=Use custom locales
Text.ExternalLocaleDirectory=Locale directory:
Text.ExternalLocaleDirectorySet=Set
Text.ExternalLocaleDirectoryUpdate=Import
Text.ExternalLocaleDirectoryExport=Export
LocaleDialog.Language=Locale:
LocaleDialog.FileStatusOk=OK
LocaleDialog.FileStatusFormatError=Format error
LocaleDialog.FileStatusMissing=Missing file

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1044,7 +1044,7 @@ Text.modifiedInParentheses=(modifi
Text.thousandsAbbreviation=K
Text.millionsAbbreviation=M
Text.newServerProject=Projet de serveur
Text.openProject=Projet ouvert
Text.openProject=Ouvrir le projet
Text.predecessor=prédécesseur
# {0} is the name of the thing to rename
Text.rename.mf=Renommer {0}
@ -1234,3 +1234,7 @@ T_CANCEL=Annuler
T_SAVE=Sauvegarder
T_REFRESH=Rafra\u00eechir
T_VIEW=Vue
Message.languageChange=Language change will take effect at restart\nApply change?

View file

@ -71,6 +71,10 @@
# Some strings contain spaces at the end. Be careful to conserve them
# Strings with colons at the end should retain the colons at the end
Legend:
Correction proposed
General suggestion
Some of the following denomination are not present in Project Libre. Maybe they are present in the cloud version
# The following are standard Project Management abbreviations. it is possible that the English abbreviation is used in some languages
# http://en.wikipedia.org/wiki/Earned_value_management - see translations of this page for help
@ -81,30 +85,29 @@
#CPI = Cost Peformance Index
#CSI = Cost Schedule Index
#CV = Cost Variance
#CV = Cost Variance Percent
#CV Percentage = Cost Variance Percent
#EAC = Estimate at Complete
#SPI = Schedule Peformance Index
#SV = Schedule Variance
#SV = Schedule Variance Percent
#SV Percentage = Schedule Variance Percent
#TCPI = To Complete Performance Index
#VAC = Value at Completion
#VAC = Variance at Completion
#WBS = Work Breakdown Structure
#RBS = Resource Breakdown Structure
AboutDialog.About=About
AboutDialog.copyright=Copyright 2012-2020 ProjectLibre Inc. Tutti i diritti riservati.
AccessControlPolicy.PUBLIC=Tutte le risorse (eccetto clienti/partner)
AccessControlPolicy.RESTRICTED=Based on Project Role in resources view
AccrualType.End=Fine
AccrualType.Prorated=Prorated
AccrualType.Start=Inizia
AccrualType.Start=Inizio
AssignmentDialog.ShowingAllResources=Mostra tutte le risorse
AssignmentDialog.ShowingOnlyResourcesOnTheProjectTeam=Mostra solo le risorse del team di progetto
AssignmentDialog.none=(vuoto)
Bar.assignment=assignment
Bar.assignment=assignment Assegnazione
Bar.baseline10=baseline10
Bar.baseline1=baseline1
Bar.baseline2=baseline2
@ -116,29 +119,29 @@ Bar.baseline7=baseline7
Bar.baseline8=baseline8
Bar.baseline9=baseline9
Bar.baseline=baseline
Bar.critical=critica
Bar.critical=Attività critiche
Bar.deadline=scadenza
Bar.external=esterna
Bar.milestone=milestone
Bar.subproject=sottoprogetto
Bar.summary=sommario
Bar.task=task
Bar.timesheet=Scheda dei task
Bar.summary=Attività di riepilogo
Bar.task=Attività
Bar.timesheet=Informazioni attività
Bar.totalSlack=Slittamento complessivo
BarPanel.Shape=Forma:
BaselineDialog.Baseline=Baseline:
BaselineDialog.For=Per:
BookingType.Committed=Impegnato
BookingType.Committed=Assegnato
BookingType.Proposed=Proposto
ButtonText.Cancel=Cancella
ButtonText.Close=Chiudi
ButtonText.IAccept=Accetto
ButtonText.IAccept=Accetta
ButtonText.OK=OK
ButtonText.Open=Apri
ButtonText.OpenCopy=Apri in sola lettura
Calendar.24Hours=24 Ore
Calendar.EditedWorkingHours=Modifiche orario di lavoro
CalendarDialogBox.Wednesday=Mercoledì
CalendarDialogBox.Wednesday=Mercoledì
CalendarDialogBox.September=Settembre
CalendarDialogBox.Seventeen=17:00
CalculationDialogBox.Manual=\ Manuale
@ -150,11 +153,11 @@ CalendarDialogBox.DurationSettings=Impostazioni sulla durata
CalendarDialogBox.SetAsDefault=Imposta come predefinito
CalendarDialogBox.HoursPerWeek=Ore a settimana :
CalendarDialogBox.DaysPerMonth=Giorni al mese :
Calendar.ExceptionCircular=Non è possibile utilizzare questo calendario come calendario di base in quanto dipende da lui stesso.
CalendarDialogBox.Monday=Lunedì
CalendarDialogBox.Tuesday=Martedì
CalendarDialogBox.Thursday=Giovedì
CalendarDialogBox.Friday=Venerdì
Calendar.ExceptionCircular=Non è possibile utilizzare questo calendario come calendario di progetto in quanto dipende da se stesso.
CalendarDialogBox.Monday=Lunedì
CalendarDialogBox.Tuesday=Martedì
CalendarDialogBox.Thursday=Giovedì
CalendarDialogBox.Friday=Venerdì
CalendarDialogBox.Saturday=Sabato
CalendarDialogBox.Sunday=Domenica
CalendarDialogBox.January=Gennaio
@ -186,10 +189,10 @@ CalculationDialogBox.MoveEndOfCompleteParts=Move end of complete work that is af
Calendar.Working=Lavorativo
Category.assignmentEntrySpreadsheet=Tabella dei lavori in entrata
Category.assignmentSpreadsheet=Tabella dei lavori
Category.availabilitySpreadsheet=Tabella delle disponibilità
Category.availabilitySpreadsheet=Tabella delle disponibilità
Category.costRates=Tariffe di costo
Category.dependencySpreadsheet=Tabella delle dipendenze
CalculationDialogBox.Automatic=\ Automatico
CalculationDialogBox.Automatic=Automatico
CalculationDialogBox.Calculate=Calcola:
Category.distributionSpreadsheet=Tabella degli utilizzi
CalculationDialogBox.Calculation=Calcolo
@ -204,13 +207,13 @@ Category.taskSpreadsheet;projectSpreadsheet=Tabella dei task e di progetto
CalculationDialogBox.End=Fine
Category.timesheetSpreadsheet=Tabella dei tempi
ChangeWorkingTimeDialogBox.BasedOn=Base
ChangeWorkingTimeDialogBox.ChangeWorkingTime=Cambia il calendario di lavoro
ChangeWorkingTimeDialogBox.ChangeWorkingTime=Modifica il calendario di progetto
ChangeWorkingTimeDialogBox.For=Per:
ChangeWorkingTimeDialogBox.From=Da:
ChangeWorkingTimeDialogBox.ModificationMessage=<html><font color="blue">Le modifiche di questo calendario influiranno su tutti i progetti che lo utilizzano.</font></html>
ChangeWorkingTimeDialogBox.New=Nuovo...
ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=Non-default working time
ChangeWorkingTimeDialogBox.NonWorkingTime=Non-working time
ChangeWorkingTimeDialogBox.NonDefaultWorkingTime=Orario di lavoro personalizzato
ChangeWorkingTimeDialogBox.NonWorkingTime=Orario non lavorativo
ChangeWorkingTimeDialogBox.NotEdiableMessage=<html><font color="red">This calendar is only editable when editing the Master Project (Resource Pool).</font></html>
ChangeWorkingTimeDialogBox.Options=Opzioni...
ChangeWorkingTimeDialogBox.To=\ Per\:
@ -222,8 +225,8 @@ ClientRole.TeamMember=Membro del team
ClientRole.TeamResource=Team Resource
ColumnDialog.InsertColumn=Inserisci nuova colonna
Command.UpateProject=Aggiorna progetto
Command.UpdateTasks=Aggiorna le attività
ConstraintType.ALAP=Più tardi possibile
Command.UpdateTasks=Aggiorna le attività
ConstraintType.ALAP=Più tardi possibile
ConstraintType.ASAP=Prima possibile
ConstraintType.FNET=Non terminare prima di
ConstraintType.FNLT=Non terminare dopo il
@ -233,11 +236,11 @@ ConstraintType.MSO=Deve iniziare il
ConstraintType.SNET=Non iniziare prima di
ConstraintType.SNLT=Non iniziare dopo il
#The CostRateIndex letters do not need translation for latin alphabets
CostRateIndex.A=Tasso A
CostRateIndex.B=Tasso B
CostRateIndex.C=Tasso C
CostRateIndex.D=Tasso D
CostRateIndex.E=Tasso E
CostRateIndex.A=Tariffa A
CostRateIndex.B=Tariffa B
CostRateIndex.C=Tariffa C
CostRateIndex.D=Tariffa D
CostRateIndex.E=Tariffa E
Date.NoEnd=Poi
# NA = Non applicabile
Date.NoStart=NA
@ -246,7 +249,7 @@ Date.Half1=H
Date.Quarter2=Q2
Date.Half2=Half
DefaultFrameManager.Project=Progetto
DelegateTaskDialog.DelegateTask=Delega l'attività
DelegateTaskDialog.DelegateTask=Delega l'attività
#These DependencyType values are shorter forms of the ones right below: FF is short for Finish-Finish for example
DependencyType.FF=FF
DependencyType.FS=FS
@ -259,8 +262,8 @@ DependencyType.longSS=Start To Start
EarnedValueCalculator.SPI=SPI
EarnedValueCalculator.CPI=CPI
EarnedValueCalculator.CSI=CSI
EarnedValueMethodType.PercentComplete=% Completato
EarnedValueMethodType.PhysicalPercentComplete=% Fisicamente completato
EarnedValueMethodType.PercentComplete=% di completamento
EarnedValueMethodType.PhysicalPercentComplete=% fisica di completamento
ExpenseType.CAPITALIZE=Capitalizza
ExpenseType.DIRECT=Diretto
ExpenseType.EXPENSE=Costo
@ -269,32 +272,32 @@ ExpenseType.NONE=Nessuno
ExpenseType.OVERHEAD=Overhead
Field.accessControlPolicy=Team di progetto
Field.accrueAt=Maturano al
Field.actualCost=Costo attuale
Field.actualDuration=Durata attuale
Field.actualFinish=Termine attuale
Field.actualCost=Costo effettivo
Field.actualDuration=Durata effettiva
Field.actualFinish=Data chiusura effettiva
Field.actualFixedCost=Costi fissi attuali
Field.actualOvertimeCost=Costi attuali straordinari
Field.actualOvertimeWork=Lavori attuali straordinari
Field.actualOvertimeWorkProtected=Lavoro straordinario effettivo protetto
Field.actualStart=Inizio attuale
Field.actualWork=Lavoro attuale
Field.actualStart=Data avvio effettiva
Field.actualWork=Lavoro effettivo
Field.actualWorkProtected=Lavoro attuale protetto
Field.acwp=ACWP
Field.assignedRate=Tasso di assegnazione
Field.assignment=Assegnazione
Field.assignmentEntryAssigned=Assegnato
Field.assignmentEntryName=Nome
Field.assignmentEntryRate=Unità
Field.assignmentEntryRate=Unità
Field.assignmentProjectName=Progetto
Field.assignmentResourceId=ID Risorsa
Field.assignmentResourceName=Risorsa
Field.assignmentTaskId=ID Attività
Field.assignmentTaskName=Attività
Field.assignmentTaskId=ID Attività
Field.assignmentTaskName=Attività
Field.assignmentUnits=Assignment Units
Field.availableFrom=Disponibile dal
Field.availableTo=Disponibile a
Field.bac=BAC
Field.baseCalendar=Calendario di base
Field.baseCalendar=Calendario di progetto
#the # will be replaced by a number or by nothing
Field.baseline#Cost=Baseline# dei costi
Field.baseline#Duration=Baseline# delle durate
@ -307,7 +310,7 @@ Field.benefit=Benefit
Field.bookingType=Tipo di prenotazione
Field.budgetStatusIndicator=Status del budget
Field.cachedEnd=Fine
Field.cachedStart=Avvio
Field.cachedStart=Data di Avvio
Field.canLevel=Can Level
Field.code=Codice
Field.complete=Completa
@ -319,7 +322,7 @@ Field.constraintType=Tipologia di vincolo
Field.contact=Contatto
Field.cost=Costo
Field.costPerUse=Costo per utilizzo
Field.costRateTable=Tabella dei tassi di costo
Field.costRateTable=tabella tariffe
Field.costVariance=Varianza dei costi
Field.cpi=CPI
Field.created=Creato
@ -353,29 +356,30 @@ Field.dirty=Sporco
Field.duration=Durata
Field.durationVariance=Varianza della durata
Field.eac=EAC
Field.earliestStartingTask=Avvio al più presto dell'attività
Field.earlyFinish=Termine al più presto
Field.earlyStart=Avvio al più presto
Field.earliestStartingTask=Avvio al più presto dell'attività
Field.earlyFinish=Termine al più presto
Field.earlyStart=Avvio al più presto
Field.earnedValueMethod=Metodo dell'Earned Value
Field.effectiveDate=Data effettiva
Field.effortDriven=Impegno guidato
Field.effortDriven=Basato sulle risorse
Field.elapsedDuration=Durata trascorsa
Field.emailAddress=Indirizzo E-mail
Field.estimated=Previsto
Field.estimated=Stimata
Field.expectedDuration=Durata prevista
Field.expectedFinish=Termine previsto
Field.expectedStart=Avvio previsto
Field.expenseType=Tipologia di spesa
Field.externalId=ID esterno
Field.externalTask=Attività esterna
Field.finish=Termine
Field.finishDate=Termine
Field.externalTask=Attività esterna
Field.finish=Data di chiusura
Field.finishDate=Data avvio effettiva
Data di chiusura
Field.finishOffset=Differenza finale
Field.finishSlack=Ritardo finale
Field.finishVariance=Varianza finale
Field.fixedCost=Costo fisso
Field.fixedCostAccrual=Costo fisso per competenza
Field.forward=Anticipo programmato
Field.forward=Programma dalla data di avvio
Field.freeSlack=Free Slack
Field.ganttSnapshot=Gantt
Field.generic=Generico
@ -401,18 +405,18 @@ Field.lateStart=Ritardo all'avvio
Field.latestFinishingTask=Latest Finishing Task
Field.levelAssignments=Level Assignments
Field.levelingCanSplit=LevelingCanSplit
Field.levelingDelay=Leveling Delay
Field.levelingDelay=Ritardo dovuto al livellamento
Field.linkedFields=Campi collegati
Field.manager=Manager
Field.markTaskAsMilestone=Visualizza attività come milestone
Field.markTaskAsMilestone=Visualizza attività come milestone
Field.marked=Contrassegnato
Field.materialLabel=Etichetta materiale
Field.maximumUnits=Unità massime
Field.maximumUnits=Unità massime
Field.milestone=Milestone
Field.name=Nome
Field.negativeSlack=Slittamento negativo
Field.netPresentValue=Valore attuale netto
Field.networkSnapshot=Network
Field.networkSnapshot=Reticolo logico
Field.notes=Note
Field.objects=Ogetto
Field.optimisticDuration=Durata ottimista
@ -423,12 +427,12 @@ Field.outlineNumber=Numero struttura
Field.overallocated=Sovrallocata
Field.overallocation=Sovrallocazione
Field.overtimeCost=Costi straordinari
Field.overtimeRate=Tasso straordinari
Field.overtimeRate=Tariffa straordinaria
Field.overtimeWork=Lavoro straordinario
Field.parentId#=ID Genitore#
Field.partner=partner
Field.peak=Picco
Field.peakUnits=Unità picco
Field.peakUnits=Unità picco
Field.pendingTimesheetUpdate=La tabella necessita di un aggiornamento
Field.percentAllocation=Percentuale di allocazione
Field.percentComplete=Precentuale di completamento
@ -443,29 +447,29 @@ Field.predecessorName=Predecessore
Field.predecessors=Predecessori
Field.preleveledFinish=Preleveled Finish
Field.preleveledStart=Preleveled Start
Field.priority=Priorità
Field.priority=Priorità
Field.project=Progetto
Field.projectDivision=Ripartizione
Field.projectGroup=Gruppo
Field.projectId=ID Progetto
Field.projectStatus=Stato del progetto
Field.projectType=Tipologia di progetto
Field.rate=Unità
Field.rate=Unità
Field.rbsCode=RBS
Field.readOnlyDuration=Durata
Field.recurring=Periodico
Field.referringSubprojectTaskDependencyDate=Data di dipendenza sottoprogetto
Field.regularWork=Lavoro regolare
Field.remainingAvailability=Disponibilità rimanente
Field.remainingAvailability=Disponibilità rimanente
Field.remainingCost=Costi rimanenti
Field.remainingDuration=Durata rimanente
Field.remainingOvertimeCost=Costi straordinari rimanenti
Field.remainingOvertimeWork=Lavoro straordinario rimanente
FieldDialog.TaskInformation=Informazioni attività
FieldDialog.TaskInformation=Informazioni attività
Field.remainingWork=Lavoro rimanente
# R/D is an abbreviation for Request / Demand; a resouce is requested or is demanded
Field.requestDemandType=R/D
Field.resourceAvailability=Disponibilità risorsa
Field.resourceAvailability=Disponibilità risorsa
Field.resourceGroup=Gruppo risorsa
Field.resourceId=ID Risorsa
Field.resourceInitials=Iniziali risorsa
@ -481,14 +485,14 @@ Field.scheduleStatusIndicator=Schedule Status
Field.schedulingMethod=Metodo di Scheduling
Field.showProjectResourcesOnly=Mostra solo le risorse del progetto
Field.spi=SPI
Field.standardRate=Tasso standard
Field.start=Avvio
Field.startDate=Avvio
Field.standardRate=Tariffa standard
Field.start=Data di Avvio
Field.startDate=Data di Avvio
Field.startOffset=Start Offset
Field.startSlack=Start Slack
Field.startVariance=Start Variance
Field.status=Status
Field.statusDate=Status Data
Field.statusDate=Data stato
Field.statusIndicator=Overall Status
Field.statusTaskIndicator=StatusTask Indicator
Field.stop=Termina
@ -503,12 +507,12 @@ Field.summaryProgress=Progresso sommario
Field.suprojectReadOnly=Sottoprogetto in sola lettura
Field.sv=SV
Field.svPercent=Percentuale SV
Field.taskCalendar=Calendario attività
Field.taskId=ID Attività
Field.taskName=Nome attività
Field.taskCalendar=Calendario attività
Field.taskId=ID Attività
Field.taskName=Nome attività
Field.taskOutlineNumber=Task Outline Number
Field.taskSummaryName=Nome sommario attività
Field.taskType=Tipo
Field.taskSummaryName=Nome sommario attività
Field.taskType=Tipologia legame
Field.tcpi=TCPI
Field.teamStatusPending=TeamStatus Pending
Field.textAbove=Testo precedente
@ -523,7 +527,7 @@ Field.totalSlackStart=Slittamento totale all'avvio
Field.uniqueId=ID Unico
Field.uniqueIdPredecessors=ID Unico predecessori
Field.uniqueIdSuccessors=ID Unico successori
Field.unitAvailability=Disponibilità unità
Field.unitAvailability=Disponibilità unità
Field.updateNeeded=Aggiornamento necessario
Field.userAccount=Account utente
Field.userRole=Ruolo nel progetto
@ -534,7 +538,7 @@ Field.wbsParentName=Parente WBS
Field.wbsPredecessors=Predecessori WBS
Field.wbsSuccessors=Successori WBS
Field.work=Lavoro
Field.workAvailability=Disponibilità lavoro
Field.workAvailability=Disponibilità lavoro
Field.workContour=Profilo del lavoro
Field.workVariance=Varianza lavoro
File.microsoft=Microsoft Project
@ -542,34 +546,34 @@ File.microsoftXML=Microsoft Project XML
File.planner=Gnome Planner
File.projects=Progetti
File.ProjectLibre=ProjectLibre
Filter.CompletedTasks=Attività completate
Filter.CostOverbudgetTasks=Costo attività extra-budget
Filter.CriticalTasks=Attività critiche
Filter.CompletedTasks=Attività completate
Filter.CostOverbudgetTasks=Costo attività extra-budget
Filter.CriticalTasks=Attività critiche
Filter.DateRange=Intervallo date
Filter.Flag1=Flag 1
Filter.Flag2=Flag 2
Filter.Flag3=Flag 3
Filter.InProgressAssignments=Assegnazioni in avanzamento
Filter.InProgressTasks=Attività in avanzamento
Filter.IncompleteTasks=Attività incomplete
Filter.LateOrOverbudgetTasks=Attività in ritardo/fuori budget
Filter.InProgressTasks=Attività in avanzamento
Filter.IncompleteTasks=Attività incomplete
Filter.LateOrOverbudgetTasks=Attività in ritardo/fuori budget
Filter.Milestones=Milestones
Filter.MyDelegatedTasks=Le mie attività delegate
Filter.MyTasks=i attivitàs
Filter.MyDelegatedTasks=Le mie attività delegate
Filter.MyTasks=i attivitàs
Filter.None=No filtri
Filter.NormalTasks=Attività normali
Filter.NormalTasks=Attività normali
Filter.ResourcesMaterial=Risorse materiali
Filter.ResourcesMe=Io
Filter.ResourcesWork=Risorse del lavoro
Filter.SlippedTasks=Attività slittate
Filter.SummaryTasks=Sommario attività
Filter.TasksWithEstimatedDurations=Stima dur. attività...
Filter.SlippedTasks=Attività slittate
Filter.SummaryTasks=Sommario attività
Filter.TasksWithEstimatedDurations=Stima dur. attività...
Filter.UnstartedAssignments=Assegnazioni non avviate
FixedDuration.FixedDuration=Durata fissata
Filter.UnstartedTasks=Attività non avviate
Filter.UnstartedTasks=Attività non avviate
Filter.WorkComplete=Lavoro completo
FixedWork.FixedWork=Lavoro fissato
FixedUnits.FixedUnits=Unità fissate
FixedUnits.FixedUnits=Unità fissate
FixedDuration.TheDurationMessage=Questo task a durata-fissata deve cambiare la propria durata per questo compito
FooterRenderer.page=\ - pagina
Gantt.Popup.annotationStylesMenu=Stili annotazione
@ -580,13 +584,13 @@ Gantt.Popup.showRows=Mostra righe
Gantt.Popup.splitMode=Dividi
Gantt.tooltip.Assignment=Assegnazione
Gantt.tooltip.Resource=Risorsa
Gantt.tooltip.Task=Attività
Gantt.tooltip.Task=Attività
Gantt.tooltip.from=Da
Gantt.tooltip.lag=Ritardo
Gantt.tooltip.link=Collegamento
Gantt.tooltip.to=Per
GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=Il progetto selezionato è già aperto come sottoprogetto di un altro progetto consolidato.
GraphicManager.SelectedProjectAlreadySubproject=Il progetto selezionato è già aperto come sottoprogetto di questo progetto consolidato.
GraphicManager.SelectedProjectAlreadyOpenedAsSubproject=Il progetto selezionato è già aperto come sottoprogetto di un altro progetto consolidato.
GraphicManager.SelectedProjectAlreadySubproject=Il progetto selezionato è già aperto come sottoprogetto di questo progetto consolidato.
Grouper.AssignmentProjectName=Nome progetto
Grouper.CompleteIncomplete=Completo/incompleto
Grouper.Critical=Critica
@ -608,9 +612,9 @@ InformationDialog.ChangeWorkingTime=Cambia l'orario lavorativo
License.Inactive=Inattivo
License.LiteUser=Lite User
License.PowerUser=Utente esperto
LicenseDialog.CouldNotLoadLater=Non è stato possibile caricare la licenza. Per favore riprovare più tardi.
LicenseDialog.CouldNotLoadExiting=Non è possibile caricare la licenza. Per favore riprovare più tardi. Il programma sarà terminato.
LicenseDialog.Email=Per favore registra la tua compia di ProjectLibre per rimanere informato sulle novità e sugli aggiornamenti del prodotto.
LicenseDialog.CouldNotLoadLater=Non è stato possibile caricare la licenza. Per favore riprovare più tardi.
LicenseDialog.CouldNotLoadExiting=Non è possibile caricare la licenza. Per favore riprovare più tardi. Il programma sarà terminato.
LicenseDialog.Email=Per favore registra la tua compia di ProjectLibre per rimanere informato sulle novità e sugli aggiornamenti del prodotto.
LicenseDialog.EmailLabel=Indirizzo E-mail
LicenseDialog.License=Licenza
LicenseDialog.ThirdParty=Parte terza
@ -632,82 +636,82 @@ LookupDialog.Type=Tipo:
LookupDialog.UnableToContactServer=Impossibile contattare il server.
LookupField.LookupAValue=Ricerca diretta del valore
Message.ImportError=Impossibile leggere il file
Message.allowDeleteActuals=L'elemento/i selezionato/i hanno già questi valori. Sei sicuro di volerli cancellare?
Message.allowDistrbutedStartBeforeProjectStart=Il valore provocherà l'avvio dell'attività prima dell'avvio del progetto. Procedere comunque?
Message.allowDistrbutedStartBeforeTaskStart=Il valore è precedente all'avvio dell'attività. Procedere comunque?
Message.allowTaskStartBeforeProjectStart=Questa attività si può avviare prima dell'avvio dell'intero progetto?
Message.alreadyParentChildHierarchy=E' già presente una relazione di tipo padre/figlio.
Message.allowDeleteActuals=L'elemento/i selezionato/i hanno già questi valori. Sei sicuro di volerli cancellare?
Message.allowDistrbutedStartBeforeProjectStart=Il valore provocherà l'avvio dell'attività prima dell'avvio del progetto. Procedere comunque?
Message.allowDistrbutedStartBeforeTaskStart=Il valore è precedente all'avvio dell'attività. Procedere comunque?
Message.allowTaskStartBeforeProjectStart=Questa attività si può avviare prima dell'avvio dell'intero progetto?
Message.alreadyParentChildHierarchy=E' già presente una relazione di tipo padre/figlio.
Message.badTimeFormat=Formato orario non consentito
Message.badTimeIntervals=Intervallo orario non consentito
Message.cannotEnterUnits=Non è possibile inserire unità in questo campo
Message.cannotEnterUnits=Non è possibile inserire unità in questo campo
Message.cannotLinkToSummary=You cannot link a summary task and one of its subtasks.\nIf you want to link them, remove the hierarchy by outdenting the subtask so it is no longer under the summary task.
Message.cannotLinkTwice=Questo collegamento è già presente.
Message.cannotLinkTwice=Questo collegamento è già presente.
Message.cantEmptySpreadsheet=Questa tabella deve contenere almeno un campo.
Message.cantLinkToClosedSubproject=A subproject must be open and writable in order to be the target of a link as it affects the subproject's start date.
Message.cantLinkToExternal=Non è possibile creare collegamenti con attività esterne.
Message.cantLinkToSelf=Non è possibile collegare un'attività a se stessa.
Message.cantLinkToExternal=Non è possibile creare collegamenti con attività esterne.
Message.cantLinkToSelf=Non è possibile collegare un'attività a se stessa.
Message.circularDependency=This link is invalid as it would a create a circular dependency relationship with other tasks.
Message.confirmDeleteRows=Si è sicuri di voler cancellare queste righe?
Message.confirmDeleteRows=Si è sicuri di voler cancellare queste righe?
# {0} is the name of the predecessor task, {1} is the name of the successor task
Message.crossProjectCircularDependency.mf=A cross project link from {0} to {1} would cause a circular dependency relationship with other tasks. It is disabled and marked in dotted lines.
Message.errorCalendarMustHaveWorkingDay=Il calendario deve contenere almeno un giorno lavorativo.
# {1,number,percent} is the maximum percentage value that has been exceeded
Message.errorPercentRangeMaximum.mf=Il valore non può essere superiore a {1,number,percent}.
Message.errorPercentRangeMaximum.mf=Il valore non può essere superiore a {1,number,percent}.
# {0,number,percent} is the minimum percentage value that has been exceeded
Message.errorPercentRangeMinimum.mf=Il valore deve essere superiore a {0,number,percent}.
# {0,number} is the range minimum, {1,number} is the range maximum
Message.errorRange.mf=Il valore deve essere compreso tra {0,number} e {1,number}.
# {1,number} is the maximum value that has been exceeded
Message.errorRangeMaximum.mf=Il valore non può essere superiore a {1,number}.
Message.errorRangeMaximum.mf=Il valore non può essere superiore a {1,number}.
# {0,number} is the minimum value that has been exceeded
Message.errorRangeMinimum.mf=Il valore deve essere superiore a {0,number}.
Message.importCircularLink=Il progetto non può essere importato perchè contiene una relazione circolare con il predecessore.
Message.invalidAssignments=Si devono inserire risorse già esistenti nel pool di risorse separate dal carattere ";". Se si desidera assegnare meno del 100%, è possibile specificare una percentuale tra parentesi: e.g. Clark Kent[50%];Lois Lane
Message.importCircularLink=Il progetto non può essere importato perchè contiene una relazione circolare con il predecessore.
Message.invalidAssignments=Si devono inserire risorse già esistenti nel pool di risorse separate dal carattere ";". Se si desidera assegnare meno del 100%, è possibile specificare una percentuale tra parentesi: e.g. Clark Kent[50%];Lois Lane
Message.invalidChoice=Scelta non valida
Message.invalidCost=Costo non valido\nQuesto costo non è valido. Il costo deve essere espresso in numeri. Il simbolo corrente è opzionale.\nIl simbolo corrente è predefinito nel tuo sistema.
Message.invalidDate=Data non valida\nQuesta data non è valida o è al di fuori dei valori ammissibili. La data deve essere compresa tra il 01 Gennaio 1970 e il 31 Dicembre 2049.\nIl formato data è quello predefinito del sistema. Esempio\: 3/12/06 o 3 Mar 2006.
Message.invalidCost=Costo non valido\nQuesto costo non è valido. Il costo deve essere espresso in numeri. Il simbolo corrente è opzionale.\nIl simbolo corrente è predefinito nel tuo sistema.
Message.invalidDate=Data non valida\nQuesta data non è valida o è al di fuori dei valori ammissibili. La data deve essere compresa tra il 01 Gennaio 1970 e il 31 Dicembre 2049.\nIl formato data è quello predefinito del sistema. Esempio\: 3/12/06 o 3 Mar 2006.
# {0} is either "predecessor" or "successor"
Message.invalidDependency.mf={0} è non valido.\nPer favore usa un ID dell'attività valido.\n\u00B7 L'informazione di {0} è espressa come\: {0} numero ID, dipendenza, e anticipo/ritardo.\n\u00B7 E' anche possibile utilizzare il riquadro Infromazioni delle attività.
Message.invalidDuration=Durata non valida\nQuesto valore della durata non è valido.\nPer favore trova un valore come 24 ore (24h), 3 giorni (3d), o 9ed per giorni mancanti.
Message.invalidInput=Il valore non è valido.
Message.invalidDependency.mf={0} è non valido.\nPer favore usa un ID dell'attività valido.\n\u00B7 L'informazione di {0} è espressa come\: {0} numero ID, dipendenza, e anticipo/ritardo.\n\u00B7 E' anche possibile utilizzare il riquadro Infromazioni delle attività.
Message.invalidDuration=Durata non valida\nQuesto valore della durata non è valido.\nPer favore trova un valore come 24 ore (24h), 3 giorni (3d), o 9ed per giorni mancanti.
Message.invalidInput=Il valore non è valido.
Message.invalidIntersection=Resulting working time is invalid\n\nThere is a task which, intersected with its resource calendar, does not have enough working time for any work to be performed.\nThe task will ignore the resource calendar. \nTo remedy this, you can change the task or resource calendar, or choose the "Ignore Resource Calendar" option for the task.
Message.invalidRate=This is not a valid rate.\nFor Work (non-material) resources, type the rate amount followed by a slash (/), and then the abbreviation for the time period. For example, "100/h".\nFor material resources, type the rate amount without a slash and time period\nFor example, "10". If your Material label is "barrel", this would mean "$10/barrel".
Message.invaliidUnits=This is not a valid Units value\n\nFor Work (non-material) resources , type a number.\n\nMaterial resource assignments can be either fixed or variable. For a fixed material resource assignment, type the units value alone. For example, "10" would mean "10 barrels", if your material label was "barrel".\n\nFor a variable material resource assignment, type the units value, followed by a slash(/), and then the abbreviation for the time period. For example, "10/M" would mean "12 barrels per month".
Message.notAResource=L'elemento selezionato non è una risorsa
Message.notATask=L'elemento selezionato non è un task
Message.notAResource=L'elemento selezionato non è una risorsa
Message.notATask=L'elemento selezionato non è un task
Message.onlyReplaceOneResourceAtATime=E' possibile sostituire solo una risorsa per volta.
Message.onlySelectOneElement=Può essere selezionato solo un elemento per volta.
Message.onlySelectOneElement=Può essere selezionato solo un elemento per volta.
Message.parentConstraintType=Parent tasks may only be one of: "As Soon As Possible", "Start No Earlier Than" or "Finish No Later Than". If you are using reverse scheduling, then "As Late As Possible" is an option instead of "As Soon as Possible".
Message.parentSuccessorCannotHaveFinishLink=Predecessors of a parent task may only be of types Finish-Start or Start-Start
Message.projectAlreadyExists=Esiste già questo progetto. Eliminare la versione corrente?
Message.projectAlreadyExists=Esiste già questo progetto. Eliminare la versione corrente?
Message.projectMustHaveName=Il progeto deve avere un nome.
#Be careful to keep quotes at start or end as a value will be inserted between the 1 and 2 versions
Message.renameProject1=Progetto "
Message.renameProject2=" è già presente sul server. Per favore si scelga un altro nome.
Message.renameProject2=" è già presente sul server. Per favore si scelga un altro nome.
Message.saveProjectAs1=Salva progetto "
Message.saveProjectAs2=" come
Message.saveProjectBeforeClosing1=Vuoi salvare le modifiche di "
Message.saveProjectBeforeClosing2=" ?
Message.subprojectCut=I sottoprogetti saranno convertiti in attività normali. Questa attività non potrà essere annullata. Continuare comunque?
Message.subprojectCut=I sottoprogetti saranno convertiti in attività normali. Questa attività non potrà essere annullata. Continuare comunque?
Message.synchronizeResources=Si desidera sincronizzare le risorse con il server?
Message.tooManyResourcesSelectedToList.mf={0,number} Risorse selezionate (troppe per essere mostrate)
Message.tooManyTasksSelectedToList.mf={0,number} Attività selezionate (troppe per essere mostrate)
MicrosoftImporter.ErrorImportingXML=Non è possibile importare il file XML. Solo i file XML creati con MS Project o Planner possono essere importati.
MicrosoftImporter.ImportWithSubprojects=Il progetto contiene sottoprogetti. E' necessario importali manualmente. Le attività corrispondenti sono:
Message.tooManyTasksSelectedToList.mf={0,number} Attività selezionate (troppe per essere mostrate)
MicrosoftImporter.ErrorImportingXML=Non è possibile importare il file XML. Solo i file XML creati con MS Project o Planner possono essere importati.
MicrosoftImporter.ImportWithSubprojects=Il progetto contiene sottoprogetti. E' necessario importali manualmente. Le attività corrispondenti sono:
MicrosoftImporter.Importing=Importando...
MicrosoftImporter.PrepareResources=Preparare le risorse
Network.Popup.barStylesMenu=Stili della barra
NewBaseCalendarDialog.CreateACopyOfCalendar=Esegui una copia del calendario
NewBaseCalendarDialog.CreateANewBaseCalendar=Crea un nuovo calendario di base
NewBaseCalendarDialog.CreateACopyOfCalendar=Crea una copia del calendario
NewBaseCalendarDialog.CreateANewBaseCalendar=Crea nuovo Calendario di progetto
NewBaseCalendarDialog.Name=Nome
NewBaseCalendarDialog.NewBaseCalendar=\ Nuovo calendario di base
NewBaseCalendarDialog.NewBaseCalendar=\ Nuovo Calendario di progetto
Open_Text.ApplicationTitle=ProjectLibre
OpenProjectDialog.LockedBy=Blocato da
Open_Text.ShortTitle=ProjectLibre
Open_Text.welcomeToPod=Benvenuti in ProjectLibre
OpenProjectDialog.CreationDate=Data di creazione
OpenProjectDialog.ModificationDate=Data di modifica
OpenProjectDialog.Name=Nome
OpenProjectDialog.Name=Nome progetto
Open_Title.ProjectLibreError=Errore ProjectLibre
Open_Title.ProjectLibreWarning=Allert ProjectLibre
PageSetupDialog.Margins=Margini
@ -756,7 +760,7 @@ PageSetupDialog.ShowParts=Diagrammi
PageSetupDialog.ShowSpreadSheet=Tabella
PageSetupDialog.Title=Setup pagina
PageSetupDialog.NotPDFPrintServiceForWebDefault=
PageSetupDialog.NotValidPrinter=Il servizio selezionato è un servizio PDF, per favore si selezioni una stampante.
PageSetupDialog.NotValidPrinter=Il servizio selezionato è un servizio PDF, per favore si selezioni una stampante.
PersonalContour.personal=Personale
ProjectStatus.ACTIVE=Attiva
PreviewPanel.Preview=Anteprima
@ -788,10 +792,10 @@ ProjectType.SALES_CAMPAIGN=Campagna di vendita
ProjectDialog.ProjectName=Nome progetto:
ProjectDialog.ProjectTeam=Team di progetto:
ProjectType.TECHNICAL_SUPPORT=Supporto tecnico
RenameDialog.AnotherItemWithThatNameAlreadyExists=Esiste già un altro elemento con qesto nome.
RenameDialog.AnotherItemWithThatNameAlreadyExists=Esiste già un altro elemento con questo nome.
RenameDialog.NewName=Nuovo nome
RenameDialog.Rename=Rinomina
RenameDialog.TheNameCannotBeEmpty=Il nome non può essere vuoto
RenameDialog.TheNameCannotBeEmpty=Il nome non può essere vuoto
RenameProjectDialog.NewProject=Nuovo progetto
RenameProjectDialog.NewProjectName=Nuovo progetto con nome:
RenameProjectDialog.RenameProject=Rinomina progetto
@ -807,13 +811,13 @@ ResourceIndicatorsComponent.Administrator=\ (Amministratore)
ResourceIndicatorsComponent.PartnerCustomer=\ (Partner/Cliente)
ResourceIndicatorsComponent.ThisResourceIsOnTheProjectTeam=Questa risorsa fa parte del team di progetto<br>
ResourceIndicatorsComponent.UserLicense=Licenza utente:
ResourceInformationDialog.AssignedToTasks=Assegnato alle attività:
ResourceInformationDialog.AssignedToTasks=Assegnato alle attività:
ResourceInformationDialog.Costs=Costi
ResourceInformationDialog.General=Generale
ResourceInformationDialog.Notes=Note
ResourceInformationDialog.ResourceAvailability=Disponibilità risorsa
ResourceInformationDialog.ResourceAvailability=Disponibilità risorsa
ResourceInformationDialog.ResourceInformation=Informazioni risorsa
ResourceInformationDialog.Tasks=Attività
ResourceInformationDialog.Tasks=Attività
ResourceMappingDialog.AllResourcesExceptCustomerPartner=Tutte le risorse (eccetto Cliente/Partner)
ResourceMappingDialog.BasedOnProjectRoleInResourcesView=Basato sul ruolo di progetto nella scheda Risorse
ResourceMappingDialog.DontMergeOpenProjectReadOnly=Non unire, apri progetto in sola-lettura
@ -827,26 +831,26 @@ ResourceType.Machine=Macchina
ResourceType.Material=Materiale
ResourceType.Other=Altro
ResourceType.Work=Lavoro
ResourceView.ThisResourceCurrentlyHasAssignments=. Questa risorsa ha già dei compiti.
ResourceView.ToMoveAProtectedResource=Per modificare la gerarchia di una risorsa non modificabile è possibile creare un collegamento nella vista RBS.
ResourceView.ThisResourceCurrentlyHasAssignments=. Questa risorsa ha già dei compiti.
ResourceView.ToMoveAProtectedResource=Per modificare la gerarchia di una risorsa non modificabile è possibile creare un collegamento nella vista RBS.
ResourceView.UsersCanOnlyBeRemoved=. Gli utenti possono essere rimossi o resi inattivi solo dalla pagina web di gestione degli utenti.
ResourceView.YouCannotDeleteTheResource=Non è possibile eliminare la risorsa:
ResourceView.YouCannotDeleteTheResource=Non è possibile eliminare la risorsa:
Role.Inactive=Inattivo
Role.ProjectManager=Project Manager
Role.TeamMember=Membro del team
SchedulingType.FixedDuration=Dura fissa
SchedulingType.FixedDuration=Durata fissa
ScheduleDialogBox.Percentage=Percentuale
ScheduleDialogBox.FixedDuration=Durata fissa
ScheduleDialogBox.FixedUnits=Unità fissa
ScheduleDialogBox.FixedUnits=Unità fissa
ScheduleDialogBox.FixedWork=Lavoro fisso
ScheduleDialogBox.SetAsDefault=Usa come predefinito
ScheduleDialogBox.WorkIsEnteredIn=\ Il lavoro è stato inserito in
ScheduleDialogBox.DefaultTaskType=\ Tipologia di attività predefinita
SchedulingType.FixedUnits=Unità fissa
ScheduleDialogBox.WorkIsEnteredIn=\ Il lavoro è stato inserito in
ScheduleDialogBox.DefaultTaskType=\ Tipologia di attività predefinita
SchedulingType.FixedUnits=Unità fissa
ScheduleDialogBox.Schedule=Ordine
ScheduleDialogBox.Decimal=Decimale
ScheduleDialogBox.Minutes=Minuti
ScheduleDialogBox.NewTask=\ Nuova attività
ScheduleDialogBox.NewTask=\ Nuova attività
SchedulingType.FixedWork=Lavoro fisso
ScheduleDialogBox.Hours=Ore
ScheduleDialogBox.Days=Giorni
@ -857,7 +861,7 @@ Sorter.CompleteIncomplete=Completo/incompleto
Sorter.Cost=Costo
Sorter.CostOverbudget=Costo extra
Sorter.CostPerUse=Costo per utilizzo
Sorter.Critical=Criticità
Sorter.Critical=Criticità
Sorter.Delegated=Delegato a
Sorter.Duration=Durata
Sorter.DurationThenCost=Durata poi costi
@ -867,7 +871,7 @@ Sorter.None=Nessun ordinamento
Sorter.OvertimeRate=Overtime rate
Sorter.ResourceGroup=Gruppo
Sorter.ResourceType=Tipo
Sorter.StandardRate=Tasso standard
Sorter.StandardRate=Tariffa standard
Sorter.StartDate=Data di avvio
Spreadsheet.Action.collapse=Collassa
Spreadsheet.Action.copy=Copia
@ -881,12 +885,12 @@ Spreadsheet.Action.paste=Incolla
Spreadsheet.Assignment.resourceUsage=Utilizzo risorsa
Spreadsheet.Assignment.taskUsage=Task Usage
Spreadsheet.AssignmentEntry.assignResources=Assegna risorse
Spreadsheet.AssignmentEntry.replaceResources=Rimpiazza risorse
Spreadsheet.AssignmentEntry.replaceResources=Sostituisci Risorse
Spreadsheet.Dependency.predecessors=Predecessori
Spreadsheet.Dependency.successors=Successori
Spreadsheet.Project.default=Default
Spreadsheet.Project.portfolio=Portfolio
Spreadsheet.Project.properties=Proprietà
Spreadsheet.Project.properties=Proprietà
Spreadsheet.Resource.earnedValue=Earned Value
Spreadsheet.Resource.earnedValueCostIndicators=Earned Value - Costi
Spreadsheet.Resource.earnedValueScheduleIndicators=Earned Value - Tempi
@ -894,7 +898,7 @@ Spreadsheet.Resource.entryWorkResources=Default
Spreadsheet.ResourceAssignment.reportAssignmentResource=Nome e ID
Spreadsheet.ResourceAssignment.reportAssignmentTask=Report di base
Spreadsheet.ResourceAssignment.resources=Risorse assegnate
Spreadsheet.ResourceAssignment.tasks=Attività assegnate
Spreadsheet.ResourceAssignment.tasks=Attività assegnate
Spreadsheet.ResourceTimesheet.status=Stato tabella dei tempi
Spreadsheet.ResourceUsage.default=Utilizzo risorsa (distribuzione)
Spreadsheet.nameOnly=Nome
@ -915,13 +919,13 @@ Spreadsheet.Task.variance=Varianza sui tempi
Spreadsheet.TaskAssignment.reportAssignmentResource=Nome e ID
Spreadsheet.TaskAssignment.reportAssignmentTask=Report di base
Spreadsheet.TaskAssignment.resources=Risorse assegnate
Spreadsheet.TaskAssignment.tasks=Attività assegnate
Spreadsheet.TaskAssignment.tasks=Attività assegnate
Spreadsheet.TaskTimesheet.status=Stato tabella dei tempi
Spreadsheet.TaskUsage.default=Utilizzo risorsa (distribuzione)
Spreadsheet.Timesheet.Default=Tabella
Spreadsheet.Timesheet.completion=Completion
SpreadSheetColumnMenu.HideColumn=Nascondi colonna
Spreadsheet.availability=Disponibilità
Spreadsheet.availability=Disponibilità
Spreadsheet.costRates=Tassi di costo
Spreadsheet.empty=
StandardContour.backLoaded=Back Loaded
@ -933,7 +937,7 @@ StandardContour.frontLoaded=Front Loaded
StandardContour.latePeak=Late Peak
StandardContour.plateau=Plateau
Styles.Annotation.milestone=Milestone
Styles.Annotation.normal=Attività normale
Styles.Annotation.normal=Attività normale
Styles.Bar.Row.assignment=Assegnazioni
Styles.Bar.Row.baseline10=Baseline 10
Styles.Bar.Row.baseline1=Baseline 1
@ -946,13 +950,13 @@ Styles.Bar.Row.baseline7=Baseline 7
Styles.Bar.Row.baseline8=Baseline 8
Styles.Bar.Row.baseline9=Baseline 9
Styles.Bar.Row.baseline=Baseline
Styles.Bar.Row.critical=Attività critiche
Styles.Bar.Row.critical=Attività critiche
Styles.Bar.Row.deadline=Scadenza
Styles.Bar.Row.external=Attività esterne
Styles.Bar.Row.external=Attività esterne
Styles.Bar.Row.milestone=Milestones
Styles.Bar.Row.subproject=Sottoprogetti
Styles.Bar.Row.summary=Sommario attività
Styles.Bar.Row.task=Attività non critiche
Styles.Bar.Row.summary=Sommario attività
Styles.Bar.Row.task=Attività non critiche
Styles.Bar.Row.timesheet=tabella dei tempi
Styles.Bar.Row.totalSlack=Slittamento complessivo
Styles.Calendar.nonWorking=Mostra calendario
@ -981,21 +985,21 @@ Symbol.rightBracketRegex=\\]
Symbol.slash=/
TaskIndicatorsComponent.Notes=Note: '
TaskIndicatorsComponent.TheCalendar=Il calendario '
TaskIndicatorsComponent.TheIntersection=L'intersezione dei calendari dell'attività e della risorsa non fornisce tempo lavorativo.<br>
TaskIndicatorsComponent.TheTaskWasCompletedOn=L'attività è stata completata il
TaskIndicatorsComponent.ThisParentTaskHasResources=Questa attività parente ha assegnato risorse direttamente a:
TaskIndicatorsComponent.ThisSubprojectIsNotValid=QUesto sottoprogetto non è valido: può essere inserito solo una volta nel progetto.
TaskIndicatorsComponent.ThisTaskFinishesOn=Questa attività finisce il
TaskIndicatorsComponent.ThisTaskHasA=Questa attività ha un '
TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=Questa attività è stata delegata a
TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=Questa attività è stata delegata a te
TaskIndicatorsComponent.ThisTasksRepresentsThe=Questa attività rappresenta il
TaskIndicatorsComponent.TheIntersection=L'intersezione dei calendari dell'attività e della risorsa non fornisce tempo lavorativo.<br>
TaskIndicatorsComponent.TheTaskWasCompletedOn=L'attività è stata completata il
TaskIndicatorsComponent.ThisParentTaskHasResources=Questa attività parente ha assegnato risorse direttamente a:
TaskIndicatorsComponent.ThisSubprojectIsNotValid=QUesto sottoprogetto non è valido: può essere inserito solo una volta nel progetto.
TaskIndicatorsComponent.ThisTaskFinishesOn=Questa attività finisce il
TaskIndicatorsComponent.ThisTaskHasA=Questa attività ha un '
TaskIndicatorsComponent.ThisTaskHasBeenDelegatedTo=Questa attività è stata delegata a
TaskIndicatorsComponent.ThisTaskHasBeenDelegatedToYou=Questa attività è stata delegata a te
TaskIndicatorsComponent.ThisTasksRepresentsThe=Questa attività rappresenta il
TaskIndicatorsComponent.constraintOn=' vincolato a
TaskIndicatorsComponent.isAssignedToTheTask=' è assegnato all'attività.<br>
TaskIndicatorsComponent.isAssignedToTheTask=' è assegnato all'attività.<br>
TaskIndicatorsComponent.opened=aperto
TaskIndicatorsComponent.subproject=\ sottoprogetto\:
TaskIndicatorsComponent.unopened=non aperto
TaskIndicatorsComponent.whichIsAfterItsDeadline=\ che è oltre la sua scadenza di
TaskIndicatorsComponent.whichIsAfterItsDeadline=\ che è oltre la sua scadenza di
TaskInformationDialog.Advanced=Avanzato
TaskInformationDialog.ConstrainTask=Vincoli
TaskInformationDialog.Dates=Date
@ -1004,7 +1008,7 @@ TaskInformationDialog.Notes=Note
TaskInformationDialog.Predecessors=Predecessori
TaskInformationDialog.Resources=Risorse
TaskInformationDialog.Successors=Successori
TaskInformationDialog.TaskInformation=Informazioni attività
TaskInformationDialog.TaskInformation=Informazioni attività
Text.Allocated=Allocato
Text.ApplicationTitle=ProjectLibre
Text.Assign=Assegna
@ -1012,12 +1016,12 @@ Text.AssignResources=Assegna risorse
Text.Baseline=Baseline
Text.Cancel=Cancella
Text.ClearBaseline=Cancella Baseline
Text.CostRateTables=Tabella dei tassi di costo
Text.CostRateTables=tabella tariffe
Text.Cumulative=Cumulativo
Text.DetectingJavaVersion=Ricercando la versione di Java...
Text.DisabledExternalTaskDependency=Dipendenza da attività esterne disattivata
Text.DisabledExternalTaskDependency=Dipendenza da attività esterne disattivata
Text.EntireProject=Intero Project
Text.ExternalTaskDependency=Dipendenza da attività esterne
Text.ExternalTaskDependency=Dipendenza da attività esterne
Text.Field=Campo
Text.Filter=Filtro
Text.From=Da
@ -1029,18 +1033,18 @@ Text.No=No
Text.None=Nessuno
Text.OtherProjects=Altri progetti
Text.Remove=Rimuovi
Text.Replace=Rimpiazza
Text.ReplaceResource=Rimpiazza risorsa
Text.Replace=Sostituisci
Text.ReplaceResource=Sostituisci risorsa
Text.Save=Salva
Text.SaveBaseline=Salva Baseline
Text.Selected=Selezionato
Text.SelectedTasks=Attività selezionate
Text.SelectedTasks=Attività selezionate
Text.ShowSelectedOnTop=Mostra i selezionati in alto
Text.ShowTeamResourcesOnly=Solo le risorse del team di progetto
Text.Sort=Ordina
Text.Task=Attività
Text.TaskDependency=Dipendenza attività
Text.Tasks=Attività
Text.Task=Attività
Text.TaskDependency=Dipendenza attività
Text.Tasks=Attività
Text.ThisProject=Questo progetto
Text.To=A
Text.Type=Tipo
@ -1069,7 +1073,7 @@ Text.reverseScheduled=Pianificazione inversa
Text.rightClickSelectToSpreadsheet=Tasto destro per selezionare o rinominare le tabelle die tempi
Text.rightClickToInsertRemoveColumns=Tasto destro per inserire o nascondere le colonne
Text.successor=successore
Text.taskHierarchy=Gerarchia attività:
Text.taskHierarchy=Gerarchia attività:
Text.welcomeSubject=Benvenuti in Projects On Demand
Text.welcomeToPod=Benvenuti in ProjectLibre
Text.work=lavoro
@ -1122,49 +1126,49 @@ Units.year.plural=y|yrs|anni|y
Units.year.singular=y|yr|anno|y
UpdateProjectDialogBox.EntireProject=Intero progetti
UpdateProjectDialogBox.For=Per:
UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ Ripianifica il lavoro rimanente dopo
UpdateProjectDialogBox.SelectedTasks=\ Attività selezionate
UpdateProjectDialogBox.SetZeroHundred=Aggiusta la percentuale di completamento in accordo con le date di scadenza
UpdateProjectDialogBox.SetZeroOrHundredOnly=E' possibile aggiustare e completare esclusivamente le attività che finiscono con una data
UpdateProjectDialogBox.RescheduleCompletedWorkToStartAfter=\ Ripianifica il lavoro rimanente a partire dal
UpdateProjectDialogBox.SelectedTasks=\ Attività selezionate
UpdateProjectDialogBox.SetZeroHundred=Imposta le % di completamento tra 0% e 100%
UpdateProjectDialogBox.SetZeroOrHundredOnly=Imposta le % di completamento uguali a 0% o 100%
UpdateProjectDialogBox.UpdateProject=Aggiorna progetto
UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ Aggiorna lavoro come completato
UpdateProjectDialogBox.UpdateWorkAsCompleteThrough=\ Aggiorna lavoro come completato al
UpdateTaskDialog.Actual=Atuale
UpdateTaskDialog.Current=Corente
UpdateTaskDialog.UpdateTask=Aggiorna attività
ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=Questa data è già presente nella tabella. Per favore si scelga una data differente.
UpdateTaskDialog.UpdateTask=Aggiorna attività
ValueObjectForIntervalTable.ThatEffectiveDateIsAlreadyInTheTable=Questa data è già presente nella tabella. Per favore si scelga una data differente.
ValueObjectForIntervalTable.ThisDateMustBeAfter=Questa data deve essere successiva a quella inserita in precedenza.
ValueObjectForIntervalTable.ThisDateMustBeBefore=QUesta data deve essere precedente a quella inserita successivamente.
ValueObjectForIntervalTable.YouCannotRemoveTheFirst=Nn è possibile rimuovere la prima data in tabella.
ValueObjectForIntervalTable.YouCannotRemoveTheFirst=Nn è possibile rimuovere la prima data in tabella.
WelcomeDialog.WhatWouldYouLikeToDo=Cosa si preferisce fare:
WorkRangeException.EndMustBeAfterStart=La fine dell'intervallo deve essere superiore all'inizio
WorkRangeException.RangeIncomplete=Un intervallo di lavoro deve includere un inizio e una fine
WorkRangeException.RangesCannotOverlap=You cannot have overlapping work ranges.
WorkRangeException.RangesMustBeOrdered=L?avvio di un intervallo di lavoro deve essere successivo al precedente
tip.1.description= E' possibile diventare un membro della community ProjectLibre a http://www.projectlibre.org e si avrà accesso ad aggiornamenti, informazioni ed eventi..
tip.1.description= E' possibile diventare un membro della community ProjectLibre a http://www.projectlibre.org e si avrà accesso ad aggiornamenti, informazioni ed eventi..
tip.1.name=ENtra nella community ProjectLibre
tip.2.description= E' possibile utilizzare il tasto destro sul Gannt, sulle celle, sulle intestazioni, e sull'angolo superiore sinistro della tabella per accedere al menu dove si potranno cambiare le viste.
tip.2.name=Modifica Viste
tip.3.description=E' possibile contribuire allo sviluppo di ProjectLibre! Stiamo cercando traduttori e sviluppatori per rendere ProjectLibre sempre migliore. Contatta partners@projectlibre.org.
tip.3.name=Contribuisci a ProjectLibre
tip.4.description=L'istogramma e il grafico sono dinamici e dipendono dalle attività selezionate.
tip.4.description=L'istogramma e il grafico sono dinamici e dipendono dalle attività selezionate.
tip.4.name=rafici dinamici
tip.5.description=E' possibile apportare modifiche direttamente sul Diagramma Network (PERT).
tip.5.name=Modifica le sezioni del Network
tip.6.description=E' possibile indentare le attività per creare una gerarchia nel progetto. Questo sarà riscontrabile anche sulla vista WBS.
tip.5.description=E' possibile apportare modifiche direttamente sul Diagramma Logico
tip.5.name=Modifica le sezioni del Reticolo Logico
tip.6.description=E' possibile indentare le attività per creare una gerarchia nel progetto. Questo sarà riscontrabile anche sulla vista WBS.
tip.6.name=Costruisci una gerarchia nel progetto
tip.7.description=E' possibile utilizzare il mouse per collegare le attività, estenderle, completarle, muoverle e dividerle.
tip.7.name=Funzionalità del mouse
tip.8.description=Generalmente si utilizzerà il predefinito FS (Finish-Start) collegamento tra le attività. Qualche volta si potrebbe utilizzare SS e FF, ma il collegamento SF è molto raro. E' possibile modificare il tipo di collegamento cliccandoci sopra. E' anche possibile impostare un ritardo.
tip.7.description=E' possibile utilizzare il mouse per collegare le attività, estenderle, completarle, muoverle e dividerle.
tip.7.name=Funzionalità del mouse
tip.8.description=Generalmente si utilizzerà il predefinito FS (Finish-Start) collegamento tra le attività. Qualche volta si potrebbe utilizzare SS e FF, ma il collegamento SF è molto raro. E' possibile modificare il tipo di collegamento cliccandoci sopra. E' anche possibile impostare un ritardo.
tip.8.name=Tipologie di collegamento
tip.9.description=E' sempre un'ottima idea salvare una baseline di progetto. ProjectLibre consente di salvarne fino ad 11, le quali si potranno facilmente osservare sul Gantt e utilizzare per l'analisi dell'Earned Value.
tip.9.name=Baseline
tip.10.description=E' possibile aggiustare la stampa in una sola pagina zoommando (avvicinando/allontanando) il Gannt e ridimensionando o nascondendo le colonne. Utilizzare l'anteprima di stampa per verificare.
tip.10.name=Stampa
tip.11.description=E' possibile aprire in ProjectLibre anche file creati in MS Project ed è possibile salvarli in formato di compatibilità XML.
tip.11.name=Compatibilità con MS Project
tip.11.description=E' possibile aprire in ProjectLibre anche file creati in MS Project ed è possibile salvarli in formato di compatibilità XML.
tip.11.name=Compatibilità con MS Project
tip.12.description=Projectlibre dispone di molti campi definiti dall'utente. Si provi ad utilizzare il tasto destro sull'intestazione delle tabelle...
tip.12.name=Campi definiti dall'utente
tip.13.description=E' possibile assegnare un calendario ai tasks, alle risorse e ai progetti per tener conto delle diverse festività.
tip.13.description=E' possibile assegnare un calendario ai tasks, alle risorse e ai progetti per tener conto delle diverse festività.
tip.13.name=Calendari
tip.14.description=
tip.14.name=
@ -1177,11 +1181,11 @@ tip.17.name=
tip.18.description=
tip.18.name=
Text.badJavaVersion=La corrente versione di Java è la "{0}". Per utilizzare ProjectLibre è necessario Java 1.6 o successivo.
Text.badJavaVendor=Il distributore Java è "{0}". Per utilizzare ProjectLibre è necessario avere Sun Java.
Text.javaExecutable=La versione di Java Runtime attualmente in uso è {0}.\nSe non si dispone di una versione più recente, è possibile modificarla manualmente modificando la proprietà\n"{1}" nel file auto-detection, "{2}".\nAltrimenti, per eseguire nuovamente l'individuzione automatica è possibile rimuovere "{2}".
Text.badJavaVersion=La corrente versione di Java è la "{0}". Per utilizzare ProjectLibre è necessario Java 1.6 o successivo.
Text.badJavaVendor=Il distributore Java è "{0}". Per utilizzare ProjectLibre è necessario avere Sun Java.
Text.javaExecutable=La versione di Java Runtime attualmente in uso è {0}.\nSe non si dispone di una versione più recente, è possibile modificarla manualmente modificando la proprietà\n"{1}" nel file auto-detection, "{2}".\nAltrimenti, per eseguire nuovamente l'individuzione automatica è possibile rimuovere "{2}".
Text.newVersion=Una nuova versione {0} di ProjectLibre è disponibile.\nLa versione corrente è la {1}.\nSi desidera collegarsi adesso alla pagina di download per aggiornarla?
Text.newVersion=Una nuova versione {0} di ProjectLibre è disponibile.\nLa versione corrente è la {1}.\nSi desidera collegarsi adesso alla pagina di download per aggiornarla?
TipOfTheDay.dialogTitle=Suggerimento del giorno
TipOfTheDay.didYouKnowText=Sapevi che...
@ -1191,15 +1195,15 @@ TipOfTheDay.nextTipText=Successivo >
TipOfTheDay.closeText=Close
Warn.lockMessage = Il progetto è stato bloccato da {0}. Si vuole ugualmente aprire il file in modalità sola-lettura?
Warn.lockMessage = Il progetto è stato bloccato da {0}. Si vuole ugualmente aprire il file in modalità sola-lettura?
#added 14/2/08
Filter.StartingWithinWeek=Partenza entro una settimana
Filter.StartingWithinTwoWeeks=Partenza entro due settimane
Filter.LateStarting=Partenza in ritardo
Warn.resourcePoolOpen=Non è possibile aprire un altro progetto mentre è aperto il pool delle risorse.
Warn.resourcePoolCannotOpen=<html><font color="red">Non è possibile aprire il pool delle risorse mentre è aperto un altro progetto.</font></html>
Warn.resourcePoolOpen=Non è possibile aprire un altro progetto mentre è aperto il pool delle risorse.
Warn.resourcePoolCannotOpen=<html><font color="red">Non è possibile aprire il pool delle risorse mentre è aperto un altro progetto.</font></html>
Warn.fileNotFound=File non trovato
Text.donateMessage=<html>ProjectLibre is provided free of charge. There are no strings attached, and it saves you the $999.99 list price of commercial project management software. We do ask our users to consider voluntary contributions via PayPal.</html>
@ -1213,7 +1217,7 @@ Text.ShortTitle=ProjectLibre
Text.doNotShowAgain=Non mostrare nuovamente questo messaggio
Warn.saveXML=E' consigliato utilizzare sempre il formato XML per evitare perdite di dati nella portabilità con altre applicazioni.\nSi desidera procedere comunque?
Warn.saveXML=E' consigliato utilizzare sempre il formato XML per evitare perdite di dati nella portabilità con altre applicazioni.\nSi desidera procedere comunque?
Text.rightClickForOptions=Tasto destro per le opzioni
T_OPEN_TXT=Apri
@ -1236,3 +1240,6 @@ T_CANCEL=Annulla
T_SAVE=Salva
T_REFRESH=Aggiorna
T_VIEW=Visualizza

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1220,3 +1220,6 @@ Text.rightClickForOptions=Right click for options
Message.unableToLaunchBrowser=Error. Unable to launch web browser
Text.Locale=Locale

View file

@ -1,13 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="var" path="JUNIT_HOME/junit.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="module" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/jasperreports/bsh.jar"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/jasperreports/jasperreports.jar"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/jasperreports/jdt-compiler.jar"/>
<classpathentry combineaccessrules="false" kind="src" path="/projectlibre_contrib"/>
<classpathentry combineaccessrules="false" kind="src" path="/projectlibre_core"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/commons-collections.jar"/>
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/itext.jar"/>
<classpathentry kind="lib" path="/projectlibre_contrib/lib/trident-6.2.jar"/>
<classpathentry combineaccessrules="false" exported="true" kind="src" path="/projectlibre_contrib"/>

View file

@ -1,12 +1,12 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.6
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.6
org.eclipse.jdt.core.compiler.source=1.8

View file

@ -228,6 +228,8 @@ public class ProjectLibreRibbonUI extends RibbonUI {
protected int fileSelectorOffsetX = 300;
protected int languageSelectorWidth = 50;
protected int projectViewsOffsetX = 600;
protected int heightToReduce = 20;
@ -490,6 +492,8 @@ public class ProjectLibreRibbonUI extends RibbonUI {
ribbon.add(ribbon.getFileSelector());
ribbon.add(ribbon.getLanguageSelector());
ribbon.add(ribbon.getProjectViews());
// ribbon.addMouseListener(new MouseAdapter() { //repaint to remove the undo-redo button glichtes - SD
@ -561,6 +565,9 @@ public class ProjectLibreRibbonUI extends RibbonUI {
if (ribbon.getFileSelector() != null)
ribbon.remove(ribbon.getFileSelector());
if (ribbon.getLanguageSelector() != null)
ribbon.remove(ribbon.getLanguageSelector());
if (ribbon.getProjectViews() != null)
ribbon.remove(ribbon.getProjectViews());
@ -948,8 +955,14 @@ public class ProjectLibreRibbonUI extends RibbonUI {
taskBarPanel.setBounds(0, 0, 0, 0);
}
ribbon.getFileSelector().setBounds(fileSelectorOffsetX, ins.top,
width - ins.right - fileSelectorOffsetX, taskbarHeight);
width - ins.right - fileSelectorOffsetX - languageSelectorWidth, taskbarHeight);
if (languageSelectorWidth>0)
ribbon.getLanguageSelector().setBounds(width - ins.right - languageSelectorWidth , ins.top,
languageSelectorWidth, taskbarHeight);
// projectViews.setBounds(width-ins.right-300, ins.top, 280,
// taskbarHeight);

View file

@ -0,0 +1,893 @@
/*******************************************************************************
* The contents of this file are subject to the Common Public Attribution License
* Version 1.0 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.projectlibre.com/license . The License is based on the Mozilla Public
* License Version 1.1 but Sections 14 and 15 have been added to cover use of
* software over a computer network and provide for limited attribution for the
* Original Developer. In addition, Exhibit A has been modified to be consistent
* with Exhibit B.
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
* specific language governing rights and limitations under the License. The
* Original Code is ProjectLibre. The Original Developer is the Initial Developer
* and is ProjectLibre Inc. All portions of the code written by ProjectLibre are
* Copyright (c) 2012-2019. All Rights Reserved. All portions of the code written by
* ProjectLibre are Copyright (c) 2012-2019. All Rights Reserved. Contributor
* ProjectLibre, Inc.
*
* Alternatively, the contents of this file may be used under the terms of the
* ProjectLibre End-User License Agreement (the ProjectLibre License) in which case
* the provisions of the ProjectLibre License are applicable instead of those above.
* If you wish to allow use of your version of this file only under the terms of the
* ProjectLibre License and not to allow others to use your version of this file
* under the CPAL, indicate your decision by deleting the provisions above and
* replace them with the notice and other provisions required by the ProjectLibre
* License. If you do not delete the provisions above, a recipient may use your
* version of this file under either the CPAL or the ProjectLibre Licenses.
*
*
* [NOTE: The text of this Exhibit A may differ slightly from the text of the notices
* in the Source Code files of the Original Code. You should use the text of this
* Exhibit A rather than the text found in the Original Code Source Code for Your
* Modifications.]
*
* EXHIBIT B. Attribution Information for ProjectLibre required
*
* Attribution Copyright Notice: Copyright (c) 2012-2019, ProjectLibre, Inc.
* Attribution Phrase (not exceeding 10 words):
* ProjectLibre, open source project management software.
* Attribution URL: http://www.projectlibre.com
* Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with
* alternatives listed on http://www.projectlibre.com/logo
*
* Display of Attribution Information is required in Larger Works which are defined
* in the CPAL as a work which combines Covered Code or portions thereof with code
* not governed by the terms of the CPAL. However, in addition to the other notice
* obligations, all copies of the Covered Code in Executable and Source Code form
* distributed must, as a form of attribution of the original author, include on
* each user interface screen the "ProjectLibre" logo visible to all users.
* The ProjectLibre logo should be located horizontally aligned with the menu bar
* and left justified on the top left of the screen adjacent to the File menu. The
* logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre"
* logo it must direct them back to http://www.projectlibre.com.
*******************************************************************************/
package com.projectlibre1.dialog;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.URL;
import java.nio.ByteBuffer;
import java.nio.CharBuffer;
import java.nio.charset.Charset;
import java.nio.charset.CharsetEncoder;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TreeMap;
import java.util.TreeSet;
import java.util.Vector;
import java.util.prefs.Preferences;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JFileChooser;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
import javax.swing.event.TableModelListener;
import javax.swing.filechooser.FileSystemView;
import javax.swing.table.AbstractTableModel;
import javax.swing.table.TableModel;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyleContext;
import javax.swing.text.rtf.RTFEditorKit;
import org.apache.commons.lang.StringEscapeUtils;
import com.jgoodies.forms.builder.DefaultFormBuilder;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI;
import com.projectlibre1.pm.graphic.frames.GraphicManager;
import com.projectlibre1.configuration.Settings;
import com.projectlibre1.pm.snapshot.SnapshottableImpl;
import com.projectlibre1.preference.ConfigurationFile;
import com.projectlibre1.strings.Messages;
import com.projectlibre1.util.Alert;
import net.sf.mpxj.common.RtfHelper;
public final class LocaleDialog extends AbstractDialog {
private static final long serialVersionUID = 1L;
JComboBox<String> languageCombo;
JComboBox<Country> countryCombo;
JCheckBox externalCheckbox=new JCheckBox(Messages.getString("Text.ExternalLocaleUse"));
JTextField directoryField=new JTextField();
JButton directorySetButton=new JButton(Messages.getString("Text.ExternalLocaleDirectorySet"));
JButton directoryUpdateButton=new JButton(Messages.getString("Text.ExternalLocaleDirectoryUpdate"));
JButton directoryExportButton=new JButton(Messages.getString("Text.ExternalLocaleDirectoryExport"));
JTextPane messageArea;
JTable externalList;
AbstractTableModel externalListModel;
String[] externalListColumns={"code", "client.properties", "menu.properties"};
ArrayList<LanguageProperties> files=new ArrayList<LanguageProperties>();
public enum FileStatus {
OK(Messages.getString("LocaleDialog.FileStatusOk")),
MISSING(Messages.getString("LocaleDialog.FileStatusMissing")),
ERROR(Messages.getString("LocaleDialog.FileStatusFormatError"));
public final String message;
private FileStatus(String message) {
this.message = message;
}
}
class LanguageProperties implements Comparable<String>{
String code;
File client;
FileStatus clientStatus;
File menu;
FileStatus menuStatus;
/**
* @param code
* @param client
* @param clientStatus
* @param menu
* @param menuStatus
*/
public LanguageProperties(String code, File client, FileStatus clientStatus, File menu, FileStatus menuStatus) {
super();
this.code = code;
this.client = client;
this.clientStatus = clientStatus;
this.menu = menu;
this.menuStatus = menuStatus;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public File getClient() {
return client;
}
public void setClient(File client) {
this.client = client;
}
public File getMenu() {
return menu;
}
public void setMenu(File menu) {
this.menu = menu;
}
public FileStatus getClientStatus() {
return clientStatus;
}
public void setClientStatus(FileStatus clientStatus) {
this.clientStatus = clientStatus;
}
public FileStatus getMenuStatus() {
return menuStatus;
}
public void setMenuStatus(FileStatus menuStatus) {
this.menuStatus = menuStatus;
}
@Override
public int compareTo(String o) {
return code.compareTo(o);
}
}
String[] slocales=Settings.LANGUAGES.split(";");
Set<String> allLocales=new TreeSet();
Map<String, String> transOri=new HashMap<String, String>();
Map<String, String> oriTrans=new HashMap<String, String>();
protected boolean bind(boolean get) {
Preferences pref=Preferences.userNodeForPackage(ConfigurationFile.class);
if (get) {
updateLocales(true);
boolean custom=pref.getBoolean("useExternalLocales",false);
externalCheckbox.setSelected(custom);
directoryField.setEnabled(custom);
directorySetButton.setEnabled(custom);
directoryUpdateButton.setEnabled(custom);
directoryExportButton.setEnabled(custom);
directoryField.setText(pref.get("externalLocalesDirectory",""));
} else {
String language=(String)languageCombo.getSelectedItem();
String country=((Country)countryCombo.getSelectedItem()).getCode();
String trans=transOri.get(language);
String code=trans==null?language:trans;
if (!"".equals(country))
code+="_"+country;
pref.put("locale",code);
pref.putBoolean("useExternalLocales", externalCheckbox.isSelected());
pref.put("externalLocalesDirectory", directoryField.getText());
}
return true;
}
static class Country implements Comparable<Country>{
String code;
String name;
public Country() {
super();
this.code = "";
this.name = "";
}
/**
* @param code
* @param name
*/
public Country(String code, String name) {
super();
this.code = code;
this.name = name;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public int hashCode() {
return code.hashCode();
}
@Override
public String toString() {
return name.toString();
}
@Override
public int compareTo(Country o) {
return code.compareTo(o.getCode());
}
@Override
public boolean equals(Object o) {
if (o==null || ! (o instanceof Country))
return false;
else return code.equals(((Country)o).getCode());
}
}
public static final Country DEFAULT_COUNTRY=new Country();
public void updateLocales(boolean init) {
String currentLocaleCode=Preferences.userNodeForPackage(ConfigurationFile.class).get("locale","default");
String currentLanguage;
Country currentCountry;
if ("default".equals(currentLocaleCode)) {
currentLanguage=currentLocaleCode;
currentCountry=DEFAULT_COUNTRY;
}else {
String[] codes=ConfigurationFile.getLocaleCodes(currentLocaleCode);
currentLanguage=codes[0];
String code=codes[1];
if (code==null ||
"".equals(code))
currentCountry=DEFAULT_COUNTRY;
else {
Locale locale = new Locale("en", code);
currentCountry=new Country(code, locale.getDisplayCountry(locale));
}
}
if (init/*countryCombo.getItemCount()==0*/) { //only set once
TreeSet<Country> countrySet=new TreeSet<Country>();
countrySet.add(DEFAULT_COUNTRY);
String[] countryCodes=Locale.getISOCountries();
for (String countryCode: countryCodes) {
Locale locale = new Locale("en", countryCode);
countrySet.add(new Country(countryCode, locale.getDisplayCountry(locale)));
}
for (Country country: countrySet) {
countryCombo.addItem(country);
}
countryCombo.setSelectedItem(currentCountry);
}
for (String locale:slocales) {
String trans;
if ("default".equals(locale))
trans=Messages.getString("Text.DefaultLocale");
else trans=locale;
oriTrans.put(locale, trans);
transOri.put(trans, locale);
}
String selectedItem;
if (init){
String trans=oriTrans.get(currentLanguage);
selectedItem=trans==null? currentLanguage: trans;
}else selectedItem=(String)languageCombo.getSelectedItem();
allLocales.clear();
languageCombo.removeAllItems();
//add custom locales
for (LanguageProperties file:files) {
if (file.getClientStatus()==FileStatus.OK ||
file.getMenuStatus()==FileStatus.OK)
allLocales.add(file.code);
}
//add preference locale if missing
boolean found=false;
String defaultLocale=null;
for (String locale:slocales) {
if ("default".equals(locale)) {
defaultLocale=locale;
continue;
}
allLocales.add(locale);
if (locale.equals(currentLanguage)) {
found=true;
}
}
if (!found)
allLocales.add(currentLanguage);
if (defaultLocale!=null)
languageCombo.addItem(oriTrans.get(defaultLocale));
for (String locale: allLocales) {
String trans=oriTrans.get(locale);
if (!"default".equals(locale))
languageCombo.addItem(trans==null?locale:trans);
}
languageCombo.setSelectedItem(selectedItem);
}
public static LocaleDialog getInstance(GraphicManager graphicManager) {
LocaleDialog instance =null;
if (instance == null) {
instance = new LocaleDialog(graphicManager.getFrame());
} else
instance.setTitle(Messages.getString("Text.LocaleDialog"));
instance.addDocHelp("Locale_Dialog");
return instance;
}
private LocaleDialog(Frame owner) {
super(owner, "", true);
languageCombo=new JComboBox();
countryCombo=new JComboBox();
messageArea=new JTextPane();
messageArea.setBackground(null);
externalList=new JTable();
}
protected void displayMessage(String message) {
StyleContext sc = StyleContext.getDefaultStyleContext();
AttributeSet attr = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.Foreground, Color.RED);
attr = sc.addAttribute(attr, StyleConstants.Alignment, StyleConstants.ALIGN_JUSTIFIED);
attr = sc.addAttribute(attr, StyleConstants.Italic, true);
messageArea.setCaretPosition(0);
messageArea.selectAll();
messageArea.setCharacterAttributes(attr, false);
messageArea.replaceSelection(message);
}
protected void displayChangeMessage() {
displayMessage(Messages.getString("Message.localeChange"));
}
protected void initControls() {
bind(true);
languageCombo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
displayChangeMessage();
}
});
countryCombo.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
displayChangeMessage();
}
});
externalCheckbox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
directoryField.setEnabled(externalCheckbox.isSelected());
directorySetButton.setEnabled(externalCheckbox.isSelected());
directoryUpdateButton.setEnabled(externalCheckbox.isSelected());
directoryExportButton.setEnabled(externalCheckbox.isSelected());
displayChangeMessage();
}
});
directoryField.getDocument().addDocumentListener(new DocumentListener() {
@Override
public void removeUpdate(DocumentEvent e) {
displayChangeMessage();
}
@Override
public void insertUpdate(DocumentEvent e) {
displayChangeMessage();
}
@Override
public void changedUpdate(DocumentEvent e) {
displayChangeMessage();
}
});
directorySetButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String spath=directoryField.getText();
File path;
if (spath==null || spath=="")
path=FileSystemView.getFileSystemView().getHomeDirectory();
else {
path=new File(spath);
if (!path.isDirectory())
path=FileSystemView.getFileSystemView().getHomeDirectory();
}
JFileChooser fileChooser = new JFileChooser(path);
fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
if (fileChooser.showOpenDialog(LocaleDialog.this) == JFileChooser.APPROVE_OPTION) {
displayChangeMessage();
File selectedFile = fileChooser.getSelectedFile();
directoryField.setText(selectedFile.getPath());
refreshFiles();
}
}
});
directoryUpdateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
displayChangeMessage();
refreshFiles();
}
});
directoryExportButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
displayChangeMessage();
refreshExportFiles();
}
});
externalListModel=new AbstractTableModel() {
@Override
public String getColumnName(int col) {
return externalListColumns[col];
}
@Override
public Object getValueAt(int row, int col) {
if (row<0 ||
col<0 ||
row>=getRowCount() ||
col>=getColumnCount())
return null;
LanguageProperties prop=files.get(row);
if (col==0)
return prop.getCode();
else if (col==1)
return prop.getClientStatus();
else return prop.getMenuStatus();
}
@Override
public int getRowCount() {
return files.size();
}
@Override
public int getColumnCount() {
return 3;
}
};
externalList.setModel(externalListModel);
externalList.setEnabled(false);
// refreshFiles();
}
public void exportResourceFile(String packageDir, String file) {
File generatedDir=ConfigurationFile.getGeneratedDirectory(directoryField.getText());
if (generatedDir==null)
return;
ClassLoader cl = getClass().getClassLoader();
try {
InputStream in = cl.getResourceAsStream(packageDir+"/"+file+".properties");
if (in == null)
throw new FileNotFoundException();
byte[] buf = new byte[in.available()];
in.read(buf);
File target = new File(generatedDir,file+".properties");
OutputStream out = new FileOutputStream(target);
out.write(buf);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void exportResourceFileUTF8(String packageDir, String file) {
File generatedDir=ConfigurationFile.getExportDirectory(directoryField.getText());
if (generatedDir==null)
return;
ClassLoader cl = getClass().getClassLoader();
try {
InputStream in = cl.getResourceAsStream(packageDir+"/"+file+".properties");
if (in == null)
throw new FileNotFoundException();
String text=getFileContent(in, "ISO-8859-1",true);
File target = new File(generatedDir,file+".txt");
FileWriter out = new FileWriter(target);
out.write(text);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void refreshFiles() {
files.clear();
File directory=new File(directoryField.getText());
if (!directory.isDirectory()) {
displayMessage(Messages.getString("Message.badLocaleDirectory"));
if (externalListModel!=null)
externalListModel.fireTableDataChanged();
return;
}
File generated=new File(directory, "import");
if (generated.exists()) {
if (!generated.isDirectory()) {
displayMessage(Messages.getString("Message.badLocaleDirectory"));
if (externalListModel!=null)
externalListModel.fireTableDataChanged();
return;
}
}else {
if (!generated.mkdir()) {
displayMessage(Messages.getString("Message.badLocaleDirectory"));
if (externalListModel!=null)
externalListModel.fireTableDataChanged();
return;
}
}
// Pattern clientPattern = Pattern.compile("client_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.properties)(\\.([^\\.]*))?$");
// Pattern menuPattern = Pattern.compile("menu_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.properties)(\\.([^\\.]*))?$");
final Pattern clientPattern = Pattern.compile("client_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.(properties|txt|rtf))$");
final Pattern menuPattern = Pattern.compile( "menu_([^_]{2,3}(_[^_]{2,3})?(_[^_]{2,3})?)(\\.(properties|txt|rtf))$");
File[] clientFiles=directory.listFiles(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.isFile() &&
clientPattern.matcher(f.getName()).matches())
return true;
return false;
}
});
File[] menuFiles=directory.listFiles(new FileFilter() {
@Override
public boolean accept(File f) {
if (f.isFile() &&
menuPattern.matcher(f.getName()).matches())
return true;
return false;
}
});
exportResourceFile("com/projectlibre1/strings/","client");
Map<String, LanguageProperties> fileMap=new TreeMap<String, LanguageProperties>();
for (File file:clientFiles) {
Matcher m = clientPattern.matcher(file.getName());
if(m.matches()) {
String code=m.group(1);
String extension=m.group(5);
if (extension==null)
continue;
File generatedFile=null;
generatedFile=convertToPropertyFile(file,new File(generated,"client_"+code+".properties"),extension);
if (generatedFile==null)
continue;
if (fileMap.containsKey(code)) {
LanguageProperties p=fileMap.get(code);
p.setClient(file);
p.setClientStatus(generatedFile==null?
FileStatus.ERROR:
FileStatus.OK);
}else fileMap.put(code, new LanguageProperties(code,
file,
generatedFile==null?
FileStatus.ERROR:
FileStatus.OK,
null,
FileStatus.MISSING));
}
}
exportResourceFile("com/projectlibre1/menu/","menu");
for (File file:menuFiles) {
Matcher m = menuPattern.matcher(file.getName());
if(m.matches()) {
String code=m.group(1);
String extension=m.group(5);
if (extension==null)
continue;
File generatedFile=null;
generatedFile=convertToPropertyFile(file,new File(generated,"menu_"+code+".properties"),extension);
if (generatedFile==null)
continue;
if (fileMap.containsKey(code)) {
LanguageProperties p=fileMap.get(code);
p.setMenu(file);
p.setMenuStatus(generatedFile==null?
FileStatus.ERROR:
FileStatus.OK);
}else fileMap.put(code, new LanguageProperties(code,
null,
FileStatus.MISSING,
file,
generatedFile==null?
FileStatus.ERROR:
FileStatus.OK));
}
}
files.addAll(fileMap.values());
updateLocales(false);
externalListModel.fireTableDataChanged();
}
public void refreshExportFiles() {
File directory=new File(directoryField.getText());
if (!directory.isDirectory()) {
displayMessage(Messages.getString("Message.badLocaleDirectory"));
if (externalListModel!=null)
externalListModel.fireTableDataChanged();
return;
}
File export=new File(directory, "export");
if (export.exists()) {
if (!export.isDirectory()) {
displayMessage(Messages.getString("Message.badLocaleDirectory"));
if (externalListModel!=null)
externalListModel.fireTableDataChanged();
return;
}
}else {
if (!export.mkdir()) {
displayMessage(Messages.getString("Message.badLocaleDirectory"));
if (externalListModel!=null)
externalListModel.fireTableDataChanged();
return;
}
}
exportResourceFileUTF8("com/projectlibre1/strings/","client");
exportResourceFileUTF8("com/projectlibre1/menu/","menu");
for (String locale:slocales) {
if ("default".equals(locale))
continue;
exportResourceFileUTF8("com/projectlibre1/strings/","client_"+locale);
exportResourceFileUTF8("com/projectlibre1/menu/","menu_"+locale);
}
}
public static String getFileContent(InputStream in,String encoding ,boolean unescape) throws IOException {
BufferedReader br =new BufferedReader( new InputStreamReader(in, encoding ));
StringBuilder sb = new StringBuilder();
String line;
while(( line = br.readLine()) != null ) {
sb.append( unescape?unescape(line):line );
sb.append( '\n' );
}
return sb.toString();
}
public static String escapeProperties(String text) {
// CharsetEncoder targetEncoder = Charset.forName("US-ASCII").newEncoder();
CharsetEncoder targetEncoder = Charset.forName("ISO-8859-1").newEncoder();
final StringBuilder result = new StringBuilder();
for (Character character : text.toCharArray()) {
if (targetEncoder.canEncode(character)) {
result.append(character);
} else {
result.append("\\u");
result.append(Integer.toHexString(0x10000 | character).substring(1).toUpperCase()); //hack to add leading zeros
}
}
return result.toString();
}
public static String unescape(String text) {
text = StringEscapeUtils.unescapeJava(text);
return text;
}
public File convertToPropertyFile(File file, File newFile, String type) {
try {
FileInputStream in = new FileInputStream(file);
String text=null;
if ("rtf".equals(type)) {
try {
RTFEditorKit kit = new RTFEditorKit();
DefaultStyledDocument doc = new DefaultStyledDocument();
kit.read(in, doc, 0);
text = doc.getText(0, doc.getLength());
text=escapeProperties(text);
} catch (BadLocationException e) {
e.printStackTrace();
}
} else if ("txt".equals(type)) {
text=getFileContent(in, "UTF-8",false);
text=escapeProperties(text);
} else {
text=getFileContent(in, "ISO-8859-1", false);
}
if (text==null)
return null;
byte[] outputData = text.getBytes();
FileOutputStream out=new FileOutputStream(newFile);
out.write(outputData);
out.close();
return newFile;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public JComponent createContentPanel() {
initControls();
FormLayout dLayout = new FormLayout("default, 3dlu, fill:80dlu:grow, 3dlu, default", "p");
DefaultFormBuilder dbuilder = new DefaultFormBuilder(dLayout);
dbuilder.setDefaultDialogBorder();
dbuilder.append(Messages.getString("Text.ExternalLocaleDirectory"));
dbuilder.append(directoryField);
dbuilder.append(directorySetButton);
JComponent directoryPanel=dbuilder.getPanel();
FormLayout layout = new FormLayout("default, 3dlu, default, 3dlu, default, 3dlu, fill:80dlu:grow",
"p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, p, 3dlu, 100dlu, 20dlu, p");
DefaultFormBuilder builder = new DefaultFormBuilder(layout);
builder.setDefaultDialogBorder();
CellConstraints cc = new CellConstraints();
builder.append(Messages.getString("Text.Language"));
builder.append(languageCombo);
builder.nextLine(2);
builder.append(Messages.getString("Text.Country"));
builder.append(countryCombo);
builder.nextLine(2);
builder.addSeparator(Messages.getString("Text.ExternalLocale"));
builder.nextLine(2);
builder.add(externalCheckbox,cc.xyw(builder.getColumn(), builder
.getRow(), 7));
builder.nextLine(2);
builder.add(directoryPanel,cc.xyw(builder.getColumn(), builder
.getRow(), 7));
builder.nextLine(2);
builder.append(Messages.getString("Text.Locales"));
builder.append(directoryUpdateButton);
builder.append(directoryExportButton);
builder.nextLine(2);
builder.add(new JScrollPane(externalList),cc.xyw(builder.getColumn(), builder
.getRow(), 7));
builder.nextLine(2);
builder.add(messageArea,cc.xyw(builder.getColumn(), builder
.getRow(), 7));
return builder.getPanel();
}
}

View file

@ -80,6 +80,8 @@ public class Main {
System.setProperty("projectlibre.projectLibreRunNumber", getProjectLibreRunNumber()+"");
System.setProperty("projectlibre.projectLibreFirstRun", getProjectLibreFirstRun()+"");
// System.setProperty("file.encoding", "UTF-8");
Environment.setStandAlone(true);
String[] formatedArgs;
if (args!=null && args.length>0){

View file

@ -144,6 +144,7 @@ public interface MenuActionConstants {
public static final String ACTION_UPDATE_PROJECT = "UpdateProject";
public static final String ACTION_SAVE_BASELINE = "SaveBaseline";
public static final String ACTION_CLEAR_BASELINE = "ClearBaseline";
public static final String ACTION_LOCALE = "LocaleAction";
public static final String ACTION_CALENDAR_OPTIONS = "CalendarOptions";

View file

@ -74,13 +74,12 @@ import javax.swing.JToolBar;
import org.apache.batik.util.gui.resource.ActionMap;
import org.apache.batik.util.gui.resource.ButtonFactory;
import org.apache.batik.util.gui.resource.RibbonFactory;
import org.pushingpixels.flamingo.api.common.AbstractCommandButton;
import org.pushingpixels.flamingo.api.ribbon.RibbonTask;
import com.projectlibre.ui.ribbon.CustomRibbonBandGenerator;
import com.projectlibre1.pm.graphic.TabbedNavigation;
import com.projectlibre1.strings.DirectoryClassLoader;
import com.projectlibre1.preference.ConfigurationFile;
import com.projectlibre1.util.ClassLoaderUtils;
import com.projectlibre1.util.Environment;
@ -121,12 +120,10 @@ public class MenuManager {
private MenuManager(ActionMap rootActionMap) {
this.rootActionMap = rootActionMap;
ResourceBundle internalBundle=null,bundle=null;
if (bundle==null){
try{
DirectoryClassLoader dir=new DirectoryClassLoader();
if (dir.isValid()){
bundle=ResourceBundle.getBundle(MENU_BUNDLE_CONF_DIR,Locale.getDefault(),dir);
}
bundle=ConfigurationFile.getDirectoryBundle(MENU_BUNDLE_CONF_DIR);
}catch(Exception e){}
if (internalBundle==null) internalBundle = ResourceBundle.getBundle(MENU_INTERNAL_BUNDLE,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader());
if (bundle==null) bundle = ResourceBundle.getBundle(MENU_BUNDLE,Locale.getDefault(),ClassLoaderUtils.getLocalClassLoader());

View file

@ -225,4 +225,9 @@ ChooseFilter.tooltip = Filter
ChooseSort.tooltip = Sort
ChooseGroup.tooltip = Group
PreferencesRibbonBand.title=Preferences
RibbonLocale.text=Locale
RibbonLocale.tooltip=Locale...
RibbonLocale.mnemonic=L

View file

@ -84,6 +84,7 @@ ClipboardRibbonBand = RibbonPaste.TOP RibbonCopy RibbonCut
TaskRibbonBand = RibbonInsert RibbonDelete - RibbonIndent RibbonOutdent - RibbonLink RibbonUnlink - RibbonTaskInformation RibbonChangeWorkingTime RibbonNotes RibbonAssignResources RibbonSaveBaseline RibbonClearBaseline RibbonFind RibbonScrollToTask RibbonUpdateTasks
ResourceRibbonBand = RibbonInsert RibbonDelete - RibbonIndent RibbonOutdent - RibbonResourceInformation RibbonChangeWorkingTime RibbonNotes RibbonFind
ProjectRibbonBand = RibbonProjects.TOP RibbonProjectInformation RibbonChangeWorkingTime RibbonProjectsDialog RibbonSaveBaseline RibbonClearBaseline RibbonUpdateProject
PreferencesRibbonBand = RibbonLocale
TaskViewsZoomRibbonBand = RibbonGantt.TOP RibbonNetwork RibbonWBS RibbonTaskUsageDetail RibbonZoomIn RibbonZoomOut
ResourceViewsZoomRibbonBand = RibbonResources.TOP RibbonRBS RibbonResourceUsageDetail RibbonZoomIn RibbonZoomOut
TaskViewsRibbonBand = RibbonGantt.TOP RibbonNetwork RibbonWBS RibbonTaskUsageDetail
@ -201,6 +202,8 @@ RibbonSaveBaseline.action = SaveBaselineAction
RibbonClearBaseline.type = ITEM
RibbonClearBaseline.action = ClearBaselineAction
RibbonLocale.type=ITEM
RibbonLocale.action=LocaleAction
RibbonGantt.icon =view.gantt
RibbonGantt.action =GanttAction
@ -360,6 +363,7 @@ UpdateTasks.action = UpdateTasksAction
UpdateProject.action = UpdateProjectAction
SaveBaseline.action = SaveBaselineAction
ClearBaseline.action = ClearBaselineAction
LocaleAction.action = LocaleAction
Organizer.action = OrganizerAction
Customize.action = CustomizeAction
ScheduleOptions.action = ScheduleOptions

View file

@ -0,0 +1,234 @@
#The contents of this file are subject to the Common Public Attribution License 
#Version 1.0 (the "License"); you may not use this file except in compliance with 
#the License. You may obtain a copy of the License at 
#http://www.projectlibre.com/license . The License is based on the Mozilla Public 
#License Version 1.1 but Sections 14 and 15 have been added to cover use of 
#software over a computer network and provide for limited attribution for the 
#Original Developer. In addition, Exhibit A has been modified to be consistent 
#with Exhibit B. 
#
#Software distributed under the License is distributed on an "AS IS" basis, 
#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
#specific language governing rights and limitations under the License. The 
#Original Code is ProjectLibre and ProjectLibre.
#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and 
#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) 
#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre 
#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and 
#ProjectLibre, Inc.
#
#Alternatively, the contents of this file may be used under the terms of the 
#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case 
#the provisions of the ProjectLibre License are applicable instead of those above. 
#If you wish to allow use of your version of this file only under the terms of the 
#ProjectLibre License and not to allow others to use your version of this file under 
#the CPAL, indicate your decision by deleting the provisions above and replace them 
#with the notice and other provisions required by the Project Libre License. If you 
#do not delete the provisions above, a recipient may use your version of this file 
#under either the CPAL or the ProjectLibre Licenses. 
#
#
#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices 
#in the Source Code files of the Original Code. You should use the text of this 
#Exhibit A rather than the text found in the Original Code Source Code for Your 
#Modifications.] 
#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required
#
#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of 
#ProjectLibre
#Attribution URL: http://www.projectlibre.com
#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with 
#alternatives listed on http://www.projectlibre.com/logo 
#
#Display of Attribution Information is required in Larger Works which are defined in 
#the CPAL as a work which combines Covered Code or portions thereof with code not 
#governed by the terms of the CPAL. However, in addition to the other notice 
#obligations, all copies of the Covered Code in Executable and Source Code form 
#distributed must, as a form of attribution of the original author, include on each 
#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users. 
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left 
#justified on the top left of the screen adjacent to the File menu. The logo must be 
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them 
#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally 
#aligned immediately above the ProjectLibre logo and left justified in alignment with the 
#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the 
#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com.
#
#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source 
#solution from ProjectLibre
#Attribution URL: http://www.ProjectLibre.com
#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with 
#alternatives listed on http://www.ProjectLibre.com/logo 
#
#Display of Attribution Information is required in Larger Works which are defined in 
#the CPAL as a work which combines Covered Code or portions thereof with code not 
#governed by the terms of the CPAL. However, in addition to the other notice 
#obligations, all copies of the Covered Code in Executable and Source Code form 
#distributed must, as a form of attribution of the original author, include on each 
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. 
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left 
#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be 
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them 
#back to http://www.ProjectLibre.com.
#
#
# LOCALIZATION NOTES:
#
# The only lines to localize have the following suffixes:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .accelerator (normally CTRL+first letter of .text)
#
ProjectRibbonTask.title=Fil
TaskRibbonTask.title=Opgave
ResourceRibbonTask.title=Ressource
ViewRibbonTask.title=Vis
FileRibbonBand.title=Fil
PrintRibbonBand.title=Udskriv
ClipboardRibbonBand.title=Udklipsholder
#EditingRibbonBand.title=Redigering
TaskRibbonBand.title=Opgave
ResourceRibbonBand.title=Ressource
ProjectRibbonBand.title=Projekt
TaskViewsZoomRibbonBand.title=Visninger
TaskViewsRibbonBand.title=Opgavevisninger
ResourceViewsZoomRibbonBand.title=Visninger
ResourceViewsRibbonBand.title=Ressourcevisninger
OtherViewsRibbonBand.title=Andre visninger
SubViewsRibbonBand.title=Del-visninger
FiltersRibbonBand.title=Filtre
RibbonNewProject.text=Ny
RibbonNewProject.tooltip=Nyt projekt
RibbonOpenProject.text=Åbn
RibbonOpenProject.tooltip=Åbn projekt
RibbonSaveProject.text=Gem
RibbonSaveProject.tooltip=Gem projekt
RibbonSaveProjectAs.text=Gem som
RibbonSaveProjectAs.tooltip=Gem dette som et nyt projekt
RibbonCloseProject.text=Luk
RibbonCloseProject.tooltip=Luk projekt
RibbonPrint.text=Udskriv
RibbonPrint.tooltip=Udskriv det nuværende dokument.
RibbonPrintPreview.text=Forhåndsvisning
RibbonPrintPreview.tooltip=Udskrift forhåndsvisning
RibbonPDF.text=PDF
RibbonPDF.tooltip=PDF
RibbonCut.text=Klip
RibbonCut.tooltip=Klip
RibbonCopy.text=Kopier
RibbonCopy.tooltip=Kopier
RibbonPaste.text=Indsæt
RibbonPaste.tooltip=Indsæt
RibbonDelete.text=Slet
RibbonDelete.tooltip=Slet
RibbonZoomIn.text=Zoom ind
RibbonZoomIn.tooltip=Zoom ind
RibbonZoomOut.text=Zoom ud
RibbonZoomOut.tooltip=Zoom ud
RibbonFind.text=Find
RibbonFind.tooltip=Find
RibbonScrollToTask.text=Scroll til opgave
RibbonScrollToTask.tooltip=Scroll til opgave
RibbonOutdent.text=Udrykning
RibbonOutdent.tooltip=Udrykning
RibbonIndent.text=Indrykning
RibbonIndent.tooltip=Indrykning
RibbonLink.text=Link
RibbonLink.tooltip=Link
RibbonUnlink.text=Fjern link
RibbonUnlink.tooltip=Fjern link
RibbonTaskInformation.text=Information
RibbonTaskInformation.tooltip=Opgaveinformation
RibbonResourceInformation.text=Information
RibbonResourceInformation.tooltip=Ressourceinformation
RibbonProjectInformation.text=Information
RibbonProjectInformation.tooltip=Projektinformation
RibbonChangeWorkingTime.text=Kalender
RibbonChangeWorkingTime.tooltip=Ændre Arbejdskalender
RibbonNotes.text=Noter
RibbonNotes.tooltip=Noter...
RibbonInsert.text=Indsæt
RibbonInsert.tooltip=Indsæt
RibbonAssignResources.text=Tildel ressourcer
RibbonAssignResources.tooltip=Tildel ressourcer
RibbonProjectsDialog.text=Projektdialog
RibbonProjectsDialog.tooltip=Projekter
RibbonUpdateTasks.text=Opdater
RibbonUpdateTasks.tooltip=Opdater opgaver...
RibbonUpdateTasks.mnemonic=T
RibbonUpdateProject.text=Opdater
RibbonUpdateProject.tooltip=Opdater projekt...
RibbonUpdateProject.mnemonic=P
RibbonSaveBaseline.text=Gem Baseline
RibbonSaveBaseline.tooltip=Gem Baseline...
RibbonSaveBaseline.mnemonic=S
RibbonClearBaseline.text=Ryd Baseline
RibbonClearBaseline.tooltip=Ryd Baseline...
RibbonClearBaseline.mnemonic=C
RibbonGantt.text=Gantt
RibbonGantt.tooltip=Gantt
RibbonTrackingGantt.text=Sporing Gantt
RibbonTrackingGantt.tooltip=Sporing Gantt
RibbonTaskUsageDetail.text=Opgaveforbrug
RibbonTaskUsageDetail.tooltip=Opgaveforbrug
RibbonResourceUsageDetail.text=Ressourceforbrug
RibbonResourceUsageDetail.tooltip=Ressourceforbrug
RibbonNetwork.text=Netværk
RibbonNetwork.tooltip=Netværk
RibbonResources.text=Ressourcer
RibbonResources.tooltip=Ressourcer
RibbonProjects.text=Projekter
RibbonProjects.tooltip=Projekter
RibbonWBS.text=WBS
RibbonWBS.tooltip=WBS
RibbonRBS.text=RBS
RibbonRBS.tooltip=RBS
RibbonReport.text=Rapport
RibbonReport.tooltip=Rapport
RibbonHistogram.text=Histogram
RibbonHistogram.tooltip=Histogram
RibbonCharts.text=Diagrammer
RibbonCharts.tooltip=Diagrammer
RibbonTaskUsage.text=Opgaveforbrug
RibbonTaskUsage.tooltip=Opgaveforbrug
RibbonResourceUsage.text=Ressourceforbrug
RibbonResourceUsage.tooltip=Ressourceforbrug
RibbonNoSubWindow.text=Ingen undervindue
RibbonNoSubWindow.tooltip=Ingen undervindue
RibbonNoTextHistogram.tooltip=Histogram
RibbonNoTextCharts.tooltip=Diagrammer
RibbonNoTextTaskUsage.tooltip=Opgaveforbrug
RibbonNoTextResourceUsage.tooltip=Ressourceforbrug
RibbonNoTextNoSubWindow.tooltip=Ingen undervindue
RibbonTopBarSaveProject.text=Gem projekt
RibbonTopBarSaveProject.tooltip=Gem projekt
RibbonTopBarUndo.text=Fortryd
RibbonTopBarUndo.tooltip=Fortryd
RibbonTopBarRedo.text=Annuller fortryd
RibbonTopBarRedo.tooltip=Annuller fortryd
PrintPreviewFirst.tooltip=Første side
PrintPreviewBack.tooltip=Forrige side
PrintPreviewForward.tooltip=Næste side
PrintPreviewLast.tooltip=Sidste side
PrintPreviewDown.tooltip=Forrige side
PrintPreviewUp.tooltip=Næste side
PrintPreviewZoomOut.tooltip=Zoom ud
PrintPreviewZoomReset.tooltip=Nulstil zoom
PrintPreviewZoomIn.tooltip=Zoom ind
PrintPreviewFormat.tooltip=Sideopsætning
PrintPreviewPrint.tooltip=Udskriv
PrintPreviewPDF.tooltip=PDF
PrintPreviewLeftView.tooltip=Vis venstre del
PrintPreviewRightView.tooltip=Vis højre del
Help.text=Hjælp
ChooseFilter.tooltip=Filtrér
ChooseSort.tooltip=Sortér
ChooseGroup.tooltip=Gruppér

View file

@ -0,0 +1,233 @@
#The contents of this file are subject to the Common Public Attribution License 
#Version 1.0 (the "License"); you may not use this file except in compliance with 
#the License. You may obtain a copy of the License at 
#http://www.projectlibre.com/license . The License is based on the Mozilla Public 
#License Version 1.1 but Sections 14 and 15 have been added to cover use of 
#software over a computer network and provide for limited attribution for the 
#Original Developer. In addition, Exhibit A has been modified to be consistent 
#with Exhibit B. 
#
#Software distributed under the License is distributed on an "AS IS" basis, 
#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
#specific language governing rights and limitations under the License. The 
#Original Code is ProjectLibre and ProjectLibre.
#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and 
#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) 
#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre 
#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and 
#ProjectLibre, Inc.
#
#Alternatively, the contents of this file may be used under the terms of the 
#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case 
#the provisions of the ProjectLibre License are applicable instead of those above. 
#If you wish to allow use of your version of this file only under the terms of the 
#ProjectLibre License and not to allow others to use your version of this file under 
#the CPAL, indicate your decision by deleting the provisions above and replace them 
#with the notice and other provisions required by the Project Libre License. If you 
#do not delete the provisions above, a recipient may use your version of this file 
#under either the CPAL or the ProjectLibre Licenses. 
#
#
#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices 
#in the Source Code files of the Original Code. You should use the text of this 
#Exhibit A rather than the text found in the Original Code Source Code for Your 
#Modifications.] 
#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required
#
#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of 
#ProjectLibre
#Attribution URL: http://www.projectlibre.com
#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with 
#alternatives listed on http://www.projectlibre.com/logo 
#
#Display of Attribution Information is required in Larger Works which are defined in 
#the CPAL as a work which combines Covered Code or portions thereof with code not 
#governed by the terms of the CPAL. However, in addition to the other notice 
#obligations, all copies of the Covered Code in Executable and Source Code form 
#distributed must, as a form of attribution of the original author, include on each 
#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users. 
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left 
#justified on the top left of the screen adjacent to the File menu. The logo must be 
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them 
#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally 
#aligned immediately above the ProjectLibre logo and left justified in alignment with the 
#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the 
#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com.
#
#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source 
#solution from ProjectLibre
#Attribution URL: http://www.ProjectLibre.com
#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with 
#alternatives listed on http://www.ProjectLibre.com/logo 
#
#Display of Attribution Information is required in Larger Works which are defined in 
#the CPAL as a work which combines Covered Code or portions thereof with code not 
#governed by the terms of the CPAL. However, in addition to the other notice 
#obligations, all copies of the Covered Code in Executable and Source Code form 
#distributed must, as a form of attribution of the original author, include on each 
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. 
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left 
#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be 
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them 
#back to http://www.ProjectLibre.com.
#
#
# LOCALIZATION NOTES:
#
# The only lines to localize have the following suffixes:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .accelerator (normally CTRL+first letter of .text)
#
ProjectRibbonTask.title=\u0391\u03C1\u03C7\u03B5\u03AF\u03BF
TaskRibbonTask.title=\u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1
ResourceRibbonTask.title=\u03A0\u03CC\u03C1\u03BF\u03C2
ViewRibbonTask.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AE
FileRibbonBand.title=\u0391\u03C1\u03C7\u03B5\u03AF\u03BF 
PrintRibbonBand.title=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7
ClipboardRibbonBand.title=\u03A0\u03C1\u03CC\u03C7\u03B5\u03B9\u03C1\u03BF
#EditingRibbonBand.title=\u0395\u03C0\u03B5\u03BE\u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1
TaskRibbonBand.title=  \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1
ResourceRibbonBand.title=\u03A0\u03CC\u03C1\u03BF\u03C2
ProjectRibbonBand.title=\u0388\u03C1\u03B3\u03BF
TaskViewsZoomRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2
TaskViewsRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
ResourceViewsZoomRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2
ResourceViewsRibbonBand.title=\u03A0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2 \u03A0\u03CC\u03C1\u03BF\u03C5
OtherViewsRibbonBand.title=\u0386\u03BB\u03BB\u03B5\u03C2 \u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2
SubViewsRibbonBand.title=\u03A5\u03C0\u03BF-\u03C0\u03C1\u03BF\u03B2\u03BF\u03BB\u03AD\u03C2
FiltersRibbonBand.title=\u03A6\u03AF\u03BB\u03C4\u03C1\u03B1
RibbonNewProject.text=\u039D\u03AD\u03BF
RibbonNewProject.tooltip=\u039D\u03AD\u03BF \u03AD\u03C1\u03B3\u03BF
RibbonOpenProject.text=\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1
RibbonOpenProject.tooltip=\u0386\u03BD\u03BF\u03B9\u03B3\u03BC\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5
RibbonSaveProject.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7
RibbonSaveProject.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5
RibbonSaveProjectAs.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03C9\u03C2
RibbonSaveProjectAs.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03C9\u03C2 \u03BD\u03AD\u03BF \u03AD\u03C1\u03B3\u03BF
RibbonCloseProject.text=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF
RibbonCloseProject.tooltip=\u039A\u03BB\u03B5\u03AF\u03C3\u03B9\u03BC\u03BF \u03AD\u03C1\u03B3\u03BF\u03C5
RibbonPrint.text=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7
RibbonPrint.tooltip=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B5 \u03C4\u03BF \u03C4\u03C1\u03AD\u03C7\u03BF\u03BD \u03AD\u03B3\u03B3\u03C1\u03B1\u03C6\u03BF
RibbonPrintPreview.text=\u03A0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7
RibbonPrintPreview.tooltip=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7 \u03C0\u03C1\u03BF\u03B5\u03C0\u03B9\u03C3\u03BA\u03CC\u03C0\u03B7\u03C3\u03B7\u03C2
RibbonPDF.text=PDF
RibbonPDF.tooltip=PDF
RibbonCut.text=\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE
RibbonCut.tooltip=\u0391\u03C0\u03BF\u03BA\u03BF\u03C0\u03AE
RibbonCopy.text=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE
RibbonCopy.tooltip=\u0391\u03BD\u03C4\u03B9\u03B3\u03C1\u03B1\u03C6\u03AE
RibbonPaste.text=\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7
RibbonPaste.tooltip=\u0395\u03C0\u03B9\u03BA\u03CC\u03BB\u03BB\u03B7\u03C3\u03B7
RibbonDelete.text=\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE
RibbonDelete.tooltip=\u0394\u03B9\u03B1\u03B3\u03C1\u03B1\u03C6\u03AE
RibbonZoomIn.text=\u039C\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7
RibbonZoomIn.tooltip=\u039C\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7
RibbonZoomOut.text=\u03A3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7
RibbonZoomOut.tooltip=\u03A3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7
RibbonFind.text=\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7
RibbonFind.tooltip=\u0391\u03BD\u03B1\u03B6\u03AE\u03C4\u03B7\u03C3\u03B7
RibbonScrollToTask.text=\u03A3\u03BA\u03C1\u03CC\u03BB\u03B1\u03C1\u03B5 \u03C3\u03C4\u03B7\u03BD \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1
RibbonScrollToTask.tooltip=\u03A3\u03BA\u03C1\u03CC\u03BB\u03B1\u03C1\u03B5 \u03C3\u03C4\u03B7\u03BD \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1
RibbonOutdent.text=\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE
RibbonOutdent.tooltip=\u03A0\u03C1\u03BF\u03B5\u03BE\u03BF\u03C7\u03AE
RibbonIndent.text=\u0395\u03C3\u03BF\u03C7\u03AE
RibbonIndent.tooltip=\u0395\u03C3\u03BF\u03C7\u03AE
RibbonLink.text=\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7
RibbonLink.tooltip=\u03A3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7
RibbonUnlink.text=\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7
RibbonUnlink.tooltip=\u0391\u03C0\u03BF\u03C3\u03CD\u03BD\u03B4\u03B5\u03C3\u03B7
RibbonTaskInformation.text=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1
RibbonTaskInformation.tooltip=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonResourceInformation.text=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1
RibbonResourceInformation.tooltip=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u03A0\u03CC\u03C1\u03BF\u03C5
RibbonProjectInformation.text=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1
RibbonProjectInformation.tooltip=\u03A0\u03BB\u03B7\u03C1\u03BF\u03C6\u03BF\u03C1\u03AF\u03B1 \u0388\u03C1\u03B3\u03BF\u03C5
RibbonChangeWorkingTime.text=\u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03CC\u03B3\u03B9\u03BF
RibbonChangeWorkingTime.tooltip=\u0391\u03BB\u03BB\u03B1\u03B3\u03AE \u0397\u03BC\u03B5\u03C1\u03BF\u03BB\u03BF\u03B3\u03AF\u03BF\u03C5 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonNotes.text=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2
RibbonNotes.tooltip=\u03A3\u03B7\u03BC\u03B5\u03B9\u03CE\u03C3\u03B5\u03B9\u03C2
RibbonInsert.text=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE
RibbonInsert.tooltip=\u0395\u03B9\u03C3\u03B1\u03B3\u03C9\u03B3\u03AE
RibbonAssignResources.text=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD
RibbonAssignResources.tooltip=\u0391\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03A0\u03CC\u03C1\u03C9\u03BD
RibbonProjectsDialog.text=\u03A0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF \u0394\u03B9\u03B1\u03BB\u03CC\u03B3\u03BF\u03C5 \u0388\u03C1\u03B3\u03C9\u03BD
RibbonProjectsDialog.tooltip=\u0388\u03C1\u03B3\u03B1
RibbonUpdateTasks.text=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7
RibbonUpdateTasks.tooltip=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03B9\u03CE\u03BD
RibbonUpdateTasks.mnemonic=T
RibbonUpdateProject.text=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7
RibbonUpdateProject.tooltip=\u0395\u03BD\u03B7\u03BC\u03AD\u03C1\u03C9\u03C3\u03B7 \u0388\u03C1\u03B3\u03BF\u03C5
RibbonUpdateProject.mnemonic=P
RibbonSaveBaseline.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2
RibbonSaveBaseline.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2
RibbonSaveBaseline.mnemonic=S
RibbonClearBaseline.text=\u0395\u03BA\u03BA\u03B1\u03B8\u03AC\u03C1\u03B9\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2
RibbonClearBaseline.tooltip=\u0395\u03BA\u03BA\u03B1\u03B8\u03AC\u03C1\u03B9\u03C3\u03B7 \u0393\u03C1\u03B1\u03BC\u03BC\u03AE\u03C2 \u0392\u03AC\u03C3\u03B7\u03C2
RibbonClearBaseline.mnemonic=C
RibbonGantt.text=Gantt 
RibbonGantt.tooltip=Gantt 
RibbonTrackingGantt.text=\u03A0\u03B1\u03C1\u03B1\u03BA\u03BF\u03BB\u03BF\u03CD\u03B8\u03B7\u03C3\u03B7 Gantt
RibbonTrackingGantt.tooltip=\u03A0\u03B1\u03C1\u03B1\u03BA\u03BF\u03BB\u03BF\u03CD\u03B8\u03B7\u03C3\u03B7 Gantt
RibbonTaskUsageDetail.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonTaskUsageDetail.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonResourceUsageDetail.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5
RibbonResourceUsageDetail.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5
RibbonNetwork.text=\u0394\u03AF\u03BA\u03C4\u03C5\u03BF
RibbonNetwork.tooltip=\u0394\u03AF\u03BA\u03C4\u03C5\u03BF
RibbonResources.text=\u03A0\u03CC\u03C1\u03BF\u03B9
RibbonResources.tooltip=\u03A0\u03CC\u03C1\u03BF\u03B9
RibbonProjects.text=\u0388\u03C1\u03B3\u03B1
RibbonProjects.tooltip=\u0388\u03C1\u03B3\u03B1
RibbonWBS.text=WBS
RibbonWBS.tooltip=WBS
RibbonRBS.text=RBS
RibbonRBS.tooltip=RBS
RibbonReport.text=\u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC
RibbonReport.tooltip=\u0391\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC
RibbonHistogram.text=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1
RibbonHistogram.tooltip=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1
RibbonCharts.text=\u0394\u03B9\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1
RibbonCharts.tooltip=\u0394\u03B9\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1
RibbonTaskUsage.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonTaskUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonResourceUsage.text=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5
RibbonResourceUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5
RibbonNoSubWindow.text=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF
RibbonNoSubWindow.tooltip=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF
RibbonNoTextHistogram.tooltip=\u0399\u03C3\u03C4\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1
RibbonNoTextCharts.tooltip=\u0394\u03B9\u03B1\u03B3\u03C1\u03AC\u03BC\u03BC\u03B1\u03C4\u03B1
RibbonNoTextTaskUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u0395\u03C1\u03B3\u03B1\u03C3\u03AF\u03B1\u03C2
RibbonNoTextResourceUsage.tooltip=\u03A7\u03C1\u03AE\u03C3\u03B7 \u03A0\u03CC\u03C1\u03BF\u03C5
RibbonNoTextNoSubWindow.tooltip=\u0394\u03B5\u03BD \u03C5\u03C0\u03AC\u03C1\u03C7\u03B5\u03B9 \u03C5\u03C0\u03BF-\u03C0\u03B1\u03C1\u03AC\u03B8\u03C5\u03C1\u03BF
RibbonTopBarSaveProject.text=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5
RibbonTopBarSaveProject.tooltip=\u0391\u03C0\u03BF\u03B8\u03AE\u03BA\u03B5\u03C5\u03C3\u03B7 \u03AD\u03C1\u03B3\u03BF\u03C5
RibbonTopBarUndo.text=\u0391\u03BD\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7
RibbonTopBarUndo.tooltip=\u0391\u03BD\u03B1\u03AF\u03C1\u03B5\u03C3\u03B7
RibbonTopBarRedo.text=\u0395\u03C0\u03B1\u03BD\u03B5\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7
RibbonTopBarRedo.tooltip=\u0395\u03C0\u03B1\u03BD\u03B5\u03BA\u03C4\u03AD\u03BB\u03B5\u03C3\u03B7
PrintPreviewFirst.tooltip=\u03A0\u03C1\u03CE\u03C4\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1
PrintPreviewBack.tooltip=\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1
PrintPreviewForward.tooltip=\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1
PrintPreviewLast.tooltip=\u03A4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1
PrintPreviewDown.tooltip=\u03A0\u03C1\u03BF\u03B7\u03B3\u03BF\u03CD\u03BC\u03B5\u03BD\u03B7 \u03C3\u03B5\u03BB\u03AF\u03B4\u03B1
PrintPreviewUp.tooltip=\u0395\u03C0\u03CC\u03BC\u03B5\u03BD\u03B7 \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1
PrintPreviewZoomOut.tooltip=\u03A3\u03BC\u03AF\u03BA\u03C1\u03C5\u03BD\u03C3\u03B7
PrintPreviewZoomReset.tooltip=\u0395\u03C0\u03B1\u03BD\u03B1\u03C6\u03BF\u03C1\u03AC \u03B6\u03BF\u03C5\u03BC
PrintPreviewZoomIn.tooltip=\u039C\u03B5\u03B3\u03AD\u03B8\u03C5\u03BD\u03C3\u03B7
PrintPreviewFormat.tooltip=\u03A3\u03C4\u03AE\u03C3\u03B9\u03BC\u03BF \u03A3\u03B5\u03BB\u03AF\u03B4\u03B1\u03C2
PrintPreviewPrint.tooltip=\u0395\u03BA\u03C4\u03CD\u03C0\u03C9\u03C3\u03B7
PrintPreviewPDF.tooltip=PDF 
PrintPreviewLeftView.tooltip=\u0395\u03BC\u03C6\u03AC\u03BD\u03B9\u03C3\u03B7 \u03B1\u03C1\u03B9\u03C3\u03C4\u03B5\u03C1\u03BF\u03CD \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2
PrintPreviewRightView.tooltip=\u03A0\u03B1\u03C1\u03BF\u03C5\u03C3\u03AF\u03B1\u03C3\u03B7 \u03B4\u03B5\u03BE\u03B9\u03BF\u03CD \u03C4\u03BC\u03AE\u03BC\u03B1\u03C4\u03BF\u03C2
Help.text=\u0392\u03BF\u03AE\u03B8\u03B5\u03B9\u03B1
ChooseFilter.tooltip=\u03A6\u03B9\u03BB\u03C4\u03C1\u03AC\u03C1\u03B9\u03C3\u03BC\u03B1
ChooseSort.tooltip=\u03A4\u03B1\u03BE\u03B9\u03BD\u03CC\u03BC\u03B7\u03C3\u03B7
ChooseGroup.tooltip=\u039F\u03BC\u03B1\u03B4\u03BF\u03C0\u03BF\u03AF\u03B7\u03C3\u03B7

View file

@ -66,18 +66,18 @@
#
ProjectRibbonTask.title = File
TaskRibbonTask.title = Attività
TaskRibbonTask.title = Attività
ResourceRibbonTask.title = Risorsa
ViewRibbonTask.title = Visualizza
FileRibbonBand.title = File
PrintRibbonBand.title = Stampa
ClipboardRibbonBand.title = Clipboard
ClipboardRibbonBand.title = Clipboard- appunti
#EditingRibbonBand.title = Modifica
TaskRibbonBand.title = Attività
TaskRibbonBand.title = Attività
ResourceRibbonBand.title = Risorsa
ProjectRibbonBand.title = Progetto
TaskViewsZoomRibbonBand.title = Viste
TaskViewsRibbonBand.title = Viste attività
TaskViewsRibbonBand.title = Viste attività
ResourceViewsZoomRibbonBand.title = Viste
ResourceViewsRibbonBand.title = Viste risorsa
OtherViewsRibbonBand.title = Altre viste
@ -113,8 +113,8 @@ RibbonZoomOut.text =Zoom indietro
RibbonZoomOut.tooltip =Zoom indietro
RibbonFind.text =Trova
RibbonFind.tooltip = Trova
RibbonScrollToTask.text = Scorri fino all'attività
RibbonScrollToTask.tooltip = Scorri fino all'attività
RibbonScrollToTask.text = Scorri fino all'attività
RibbonScrollToTask.tooltip = Scorri fino all'attività
RibbonOutdent.text =Diminuisci rientro
RibbonOutdent.tooltip =Diminuisci rientro
RibbonIndent.text =Aumenta rientro
@ -124,7 +124,7 @@ RibbonLink.tooltip=Inserisci collegamento
RibbonUnlink.text=Elimina collegamento
RibbonUnlink.tooltip=Elimina collegamento
RibbonTaskInformation.text =Informazioni
RibbonTaskInformation.tooltip =Informazioni attività
RibbonTaskInformation.tooltip =Informazioni attività
RibbonResourceInformation.text =Informazioni
RibbonResourceInformation.tooltip =Informazioni risorsa
RibbonProjectInformation.text =Informazioni
@ -140,7 +140,7 @@ RibbonAssignResources.tooltip=Assegna risorse
RibbonProjectsDialog.text =Finestra progetti
RibbonProjectsDialog.tooltip =Progetti
RibbonUpdateTasks.text =Aggiorna
RibbonUpdateTasks.tooltip =Aggiorna attività...
RibbonUpdateTasks.tooltip =Aggiorna attività...
RibbonUpdateTasks.mnemonic = A
RibbonUpdateProject.text =Aggiorna
RibbonUpdateProject.tooltip =Aggiorna progetto...
@ -155,12 +155,12 @@ RibbonGantt.text=Gantt
RibbonGantt.tooltip=Gantt
RibbonTrackingGantt.text=Tracking Gantt
RibbonTrackingGantt.tooltip=Tracking Gantt
RibbonTaskUsageDetail.text=Uso delle attività
RibbonTaskUsageDetail.tooltip=Uso delle attività
RibbonTaskUsageDetail.text=Uso delle attività
RibbonTaskUsageDetail.tooltip=Uso delle attività
RibbonResourceUsageDetail.text=Uso delle risorse
RibbonResourceUsageDetail.tooltip=Uso delle risorse
RibbonNetwork.text=Network
RibbonNetwork.tooltip=Network
RibbonNetwork.text=Network Reticolo Logico
RibbonNetwork.tooltip=Network Reticolo Logico
RibbonResources.text=Risorse
RibbonResources.tooltip=Risorse
RibbonProjects.text=Progetti
@ -175,15 +175,15 @@ RibbonHistogram.text=Istogramma
RibbonHistogram.tooltip=Istogramma
RibbonCharts.text=Grafici
RibbonCharts.tooltip=Grafici
RibbonTaskUsage.text=Uso delle attività
RibbonTaskUsage.tooltip=Uso delle attività
RibbonTaskUsage.text=Uso delle attività Gestione delle attività
RibbonTaskUsage.tooltip= Uso delle attività Gestione delle attività
RibbonResourceUsage.text=Uso delle risorse
RibbonResourceUsage.tooltip=Uso delle risorse
RibbonNoSubWindow.text=Nessuna sotto-finestra
RibbonNoSubWindow.tooltip=Nessuna sotto-finestra
RibbonNoTextHistogram.tooltip=Istogramma
RibbonNoTextCharts.tooltip=Grafici
RibbonNoTextTaskUsage.tooltip=Utilizzo attività
RibbonNoTextTaskUsage.tooltip=Utilizzo attività
RibbonNoTextResourceUsage.tooltip=Utilizzo risorse
RibbonNoTextNoSubWindow.tooltip=Nessuna sotto-finestra
RibbonTopBarSaveProject.text=Salva progetto
@ -212,3 +212,5 @@ ChooseSort.tooltip = Ordina
ChooseGroup.tooltip = Gruppo

View file

@ -0,0 +1,214 @@
###############################################################################
# The contents of this file are subject to the Common Public Attribution License
# Version 1.0 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.projectlibre.com/license . The License is based on the Mozilla Public
# License Version 1.1 but Sections 14 and 15 have been added to cover use of
# software over a computer network and provide for limited attribution for the
# Original Developer. In addition, Exhibit A has been modified to be consistent
# with Exhibit B.
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
# specific language governing rights and limitations under the License. The
# Original Code is ProjectLibre. The Original Developer is the Initial Developer
# and is ProjectLibre Inc. All portions of the code written by ProjectLibre are
# Copyright (c) 2012-2020. All Rights Reserved. All portions of the code written by
# ProjectLibre are Copyright (c) 2012-2020. All Rights Reserved. Contributor
# ProjectLibre, Inc.
#
# Alternatively, the contents of this file may be used under the terms of the
# ProjectLibre End-User License Agreement (the ProjectLibre License) in which case
# the provisions of the ProjectLibre License are applicable instead of those above.
# If you wish to allow use of your version of this file only under the terms of the
# ProjectLibre License and not to allow others to use your version of this file
# under the CPAL, indicate your decision by deleting the provisions above and
# replace them with the notice and other provisions required by the ProjectLibre
# License. If you do not delete the provisions above, a recipient may use your
# version of this file under either the CPAL or the ProjectLibre Licenses.
#
#
# [NOTE: The text of this Exhibit A may differ slightly from the text of the notices
# in the Source Code files of the Original Code. You should use the text of this
# Exhibit A rather than the text found in the Original Code Source Code for Your
# Modifications.]
#
# EXHIBIT B. Attribution Information for ProjectLibre required
#
# Attribution Copyright Notice: Copyright (c) 2012-2020, ProjectLibre, Inc.
# Attribution Phrase (not exceeding 10 words):
# ProjectLibre, open source project management software.
# Attribution URL: http://www.projectlibre.com
# Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with
# alternatives listed on http://www.projectlibre.com/logo
#
# Display of Attribution Information is required in Larger Works which are defined
# in the CPAL as a work which combines Covered Code or portions thereof with code
# not governed by the terms of the CPAL. However, in addition to the other notice
# obligations, all copies of the Covered Code in Executable and Source Code form
# distributed must, as a form of attribution of the original author, include on
# each user interface screen the "ProjectLibre" logo visible to all users.
# The ProjectLibre logo should be located horizontally aligned with the menu bar
# and left justified on the top left of the screen adjacent to the File menu. The
# logo must be at least 144 x 31 pixels. When users click on the "ProjectLibre"
# logo it must direct them back to http://www.projectlibre.com.
###############################################################################
#
#
# LOCALIZATION NOTES:
#
# The only lines to localize have the following suffixes:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .accelerator (normally CTRL+first letter of .text)
#
ProjectRibbonTask.title = File
TaskRibbonTask.title = Attività
ResourceRibbonTask.title = Risorsa
ViewRibbonTask.title = Visualizza
FileRibbonBand.title = File
PrintRibbonBand.title = Stampa
ClipboardRibbonBand.title = Clipboard
#EditingRibbonBand.title = Modifica
TaskRibbonBand.title = Attività
ResourceRibbonBand.title = Risorsa
ProjectRibbonBand.title = Progetto
TaskViewsZoomRibbonBand.title = Viste
TaskViewsRibbonBand.title = Viste attività
ResourceViewsZoomRibbonBand.title = Viste
ResourceViewsRibbonBand.title = Viste risorsa
OtherViewsRibbonBand.title = Altre viste
SubViewsRibbonBand.title = Sotto-viste
FiltersRibbonBand.title = Filtri
RibbonNewProject.text =Nuovo
RibbonNewProject.tooltip =Nuovo progetto
RibbonOpenProject.text =Apri
RibbonOpenProject.tooltip =Apri progetto
RibbonSaveProject.text =Salva
RibbonSaveProject.tooltip =Salva progetto
RibbonSaveProjectAs.text =Salva con nome
RibbonSaveProjectAs.tooltip =Salva come nuovo progetto
RibbonCloseProject.text =Chiudi
RibbonCloseProject.tooltip =Chiudi progetto
RibbonPrint.text =Stampa
RibbonPrint.tooltip =Stampa il dcumento corrente.
RibbonPrintPreview.text =Anteprima
RibbonPrintPreview.tooltip =Anteprima di stampa
RibbonPDF.text =PDF
RibbonPDF.tooltip =PDF
RibbonCut.text =Taglia
RibbonCut.tooltip =Taglia
RibbonCopy.text =Copia
RibbonCopy.tooltip =Copia
RibbonPaste.text =Incolla
RibbonPaste.tooltip =Incolla
RibbonDelete.text =Cancella
RibbonDelete.tooltip =Cancella
RibbonZoomIn.text =Zoom avanti
RibbonZoomIn.tooltip =Zoom avanti
RibbonZoomOut.text =Zoom indietro
RibbonZoomOut.tooltip =Zoom indietro
RibbonFind.text =Trova
RibbonFind.tooltip = Trova
RibbonScrollToTask.text = Scorri fino all'attività
RibbonScrollToTask.tooltip = Scorri fino all'attività
RibbonOutdent.text =Diminuisci rientro
RibbonOutdent.tooltip =Diminuisci rientro
RibbonIndent.text =Aumenta rientro
RibbonIndent.tooltip =Aumenta rientro
RibbonLink.text=Inserisi collegamento
RibbonLink.tooltip=Inserisci collegamento
RibbonUnlink.text=Elimina collegamento
RibbonUnlink.tooltip=Elimina collegamento
RibbonTaskInformation.text =Informazioni
RibbonTaskInformation.tooltip =Informazioni attività
RibbonResourceInformation.text =Informazioni
RibbonResourceInformation.tooltip =Informazioni risorsa
RibbonProjectInformation.text =Informazioni
RibbonProjectInformation.tooltip =Informazioni progetto
RibbonChangeWorkingTime.text=Calendario
RibbonChangeWorkingTime.tooltip=Modifica il calendario di lavoro
RibbonNotes.text =Note
RibbonNotes.tooltip =Note...
RibbonInsert.text =Inserisci
RibbonInsert.tooltip =Inserisci
RibbonAssignResources.text=Assegna risorse
RibbonAssignResources.tooltip=Assegna risorse
RibbonProjectsDialog.text =Finestra progetti
RibbonProjectsDialog.tooltip =Progetti
RibbonUpdateTasks.text =Aggiorna
RibbonUpdateTasks.tooltip =Aggiorna attività...
RibbonUpdateTasks.mnemonic = A
RibbonUpdateProject.text =Aggiorna
RibbonUpdateProject.tooltip =Aggiorna progetto...
RibbonUpdateProject.mnemonic = P
RibbonSaveBaseline.text =Salva Baseline
RibbonSaveBaseline.tooltip =Salva Baseline...
RibbonSaveBaseline.mnemonic = S
RibbonClearBaseline.text =Elimina Baseline
RibbonClearBaseline.tooltip =Elimina Baseline...
RibbonClearBaseline.mnemonic = C
RibbonGantt.text=Gantt
RibbonGantt.tooltip=Gantt
RibbonTrackingGantt.text=Tracking Gantt
RibbonTrackingGantt.tooltip=Tracking Gantt
RibbonTaskUsageDetail.text=Uso delle attività
RibbonTaskUsageDetail.tooltip=Uso delle attività
RibbonResourceUsageDetail.text=Uso delle risorse
RibbonResourceUsageDetail.tooltip=Uso delle risorse
RibbonNetwork.text=Network
RibbonNetwork.tooltip=Network
RibbonResources.text=Risorse
RibbonResources.tooltip=Risorse
RibbonProjects.text=Progetti
RibbonProjects.tooltip=Progetti
RibbonWBS.text=WBS
RibbonWBS.tooltip=WBS
RibbonRBS.text=RBS
RibbonRBS.tooltip=RBS
RibbonReport.text=Report
RibbonReport.tooltip=Report
RibbonHistogram.text=Istogramma
RibbonHistogram.tooltip=Istogramma
RibbonCharts.text=Grafici
RibbonCharts.tooltip=Grafici
RibbonTaskUsage.text=Uso delle attività
RibbonTaskUsage.tooltip=Uso delle attività
RibbonResourceUsage.text=Uso delle risorse
RibbonResourceUsage.tooltip=Uso delle risorse
RibbonNoSubWindow.text=Nessuna sotto-finestra
RibbonNoSubWindow.tooltip=Nessuna sotto-finestra
RibbonNoTextHistogram.tooltip=Istogramma
RibbonNoTextCharts.tooltip=Grafici
RibbonNoTextTaskUsage.tooltip=Utilizzo attività
RibbonNoTextResourceUsage.tooltip=Utilizzo risorse
RibbonNoTextNoSubWindow.tooltip=Nessuna sotto-finestra
RibbonTopBarSaveProject.text=Salva progetto
RibbonTopBarSaveProject.tooltip=Salva progetto
RibbonTopBarUndo.text=Annulla
RibbonTopBarUndo.tooltip=Annulla
RibbonTopBarRedo.text=Ripeti
RibbonTopBarRedo.tooltip=Ripeti
PrintPreviewFirst.tooltip=Prima pagina
PrintPreviewBack.tooltip=Pagina precedente
PrintPreviewForward.tooltip = Pagina successiva
PrintPreviewLast.tooltip = Ultima pagina
PrintPreviewDown.tooltip = Pagina precedente
PrintPreviewUp.tooltip = Pagina successiva
PrintPreviewZoomOut.tooltip = Zoom indietro
PrintPreviewZoomReset.tooltip = Ripristina Zoom
PrintPreviewZoomIn.tooltip = Zoom avanti
PrintPreviewFormat.tooltip = Impostazioni pagina
PrintPreviewPrint.tooltip = Stampa
PrintPreviewPDF.tooltip = PDF
PrintPreviewLeftView.tooltip = Mostra la parte sinistra
PrintPreviewRightView.tooltip = Mostra la parte destra
Help.text = Aiuto
ChooseFilter.tooltip = Filtro
ChooseSort.tooltip = Ordina
ChooseGroup.tooltip = Gruppo

View file

@ -0,0 +1,231 @@
#The contents of this file are subject to the Common Public Attribution License 
#Version 1.0 (the "License"); you may not use this file except in compliance with 
#the License. You may obtain a copy of the License at 
#http://www.projectlibre.com/license . The License is based on the Mozilla Public 
#License Version 1.1 but Sections 14 and 15 have been added to cover use of 
#software over a computer network and provide for limited attribution for the 
#Original Developer. In addition, Exhibit A has been modified to be consistent 
#with Exhibit B. 
#
#Software distributed under the License is distributed on an "AS IS" basis, 
#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the 
#specific language governing rights and limitations under the License. The 
#Original Code is ProjectLibre and ProjectLibre.
#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and 
#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c) 
#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre 
#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and 
#ProjectLibre, Inc.
#
#Alternatively, the contents of this file may be used under the terms of the 
#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case 
#the provisions of the ProjectLibre License are applicable instead of those above. 
#If you wish to allow use of your version of this file only under the terms of the 
#ProjectLibre License and not to allow others to use your version of this file under 
#the CPAL, indicate your decision by deleting the provisions above and replace them 
#with the notice and other provisions required by the Project Libre License. If you 
#do not delete the provisions above, a recipient may use your version of this file 
#under either the CPAL or the ProjectLibre Licenses. 
#
#
#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices 
#in the Source Code files of the Original Code. You should use the text of this 
#Exhibit A rather than the text found in the Original Code Source Code for Your 
#Modifications.] 
#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required
#
#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of 
#ProjectLibre
#Attribution URL: http://www.projectlibre.com
#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with 
#alternatives listed on http://www.projectlibre.com/logo 
#
#Display of Attribution Information is required in Larger Works which are defined in 
#the CPAL as a work which combines Covered Code or portions thereof with code not 
#governed by the terms of the CPAL. However, in addition to the other notice 
#obligations, all copies of the Covered Code in Executable and Source Code form 
#distributed must, as a form of attribution of the original author, include on each 
#user interface screen the "ProjectLibre"  and \u201CProjectLibre\u201D logos visible to all users. 
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left 
#justified on the top left of the screen adjacent to the File menu. The logo must be 
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them 
#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally 
#aligned immediately above the ProjectLibre logo and left justified in alignment with the 
#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the 
#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com.
#
#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source 
#solution from ProjectLibre
#Attribution URL: http://www.ProjectLibre.com
#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with 
#alternatives listed on http://www.ProjectLibre.com/logo 
#
#Display of Attribution Information is required in Larger Works which are defined in 
#the CPAL as a work which combines Covered Code or portions thereof with code not 
#governed by the terms of the CPAL. However, in addition to the other notice 
#obligations, all copies of the Covered Code in Executable and Source Code form 
#distributed must, as a form of attribution of the original author, include on each 
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users. 
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left 
#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be 
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them 
#back to http://www.ProjectLibre.com.
#
#
# LOCALIZATION NOTES:
#
# The only lines to localize have the following suffixes:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .accelerator (normally CTRL+first letter of .text)
#
ProjectRibbonTask.title=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
TaskRibbonTask.title=\u0E07\u0E32\u0E19
ResourceRibbonTask.title=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
ViewRibbonTask.title=\u0E21\u0E2D\u0E07
FileRibbonBand.title=\u0E41\u0E1F\u0E49\u0E21
PrintRibbonBand.title=\u0E1E\u0E34\u0E21\u0E1E\u0E4C
ClipboardRibbonBand.title=\u0E04\u0E25\u0E34\u0E1B\u0E1A\u0E2D\u0E23\u0E4C\u0E14
#EditingRibbonBand.title=\u0E41\u0E01\u0E49\u0E44\u0E02
TaskRibbonBand.title=\u0E07\u0E32\u0E19
ResourceRibbonBand.title=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
ProjectRibbonBand.title=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
TaskViewsZoomRibbonBand.title=\u0E22\u0E48\u0E2D\u0E02\u0E22\u0E32\u0E22\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07
TaskViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E20\u0E32\u0E23\u0E01\u0E34\u0E08
ResourceViewsZoomRibbonBand.title=\u0E22\u0E48\u0E2D\u0E02\u0E22\u0E32\u0E22\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 \u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
ResourceViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07 \u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
OtherViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E2D\u0E37\u0E48\u0E19 \u0E46
SubViewsRibbonBand.title=\u0E21\u0E38\u0E21\u0E21\u0E2D\u0E07\u0E22\u0E48\u0E2D\u0E22
FiltersRibbonBand.title=\u0E15\u0E31\u0E27\u0E01\u0E23\u0E2D\u0E07
RibbonNewProject.text=\u0E2A\u0E23\u0E49\u0E32\u0E07
RibbonNewProject.tooltip=\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonOpenProject.text=\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E1F\u0E49\u0E21
RibbonOpenProject.tooltip=\u0E40\u0E1B\u0E34\u0E14\u0E41\u0E1F\u0E49\u0E21\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonSaveProject.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01
RibbonSaveProject.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonSaveProjectAs.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E1B\u0E47\u0E19
RibbonSaveProjectAs.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E1B\u0E47\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23\u0E2D\u0E37\u0E48\u0E19 
RibbonCloseProject.text=\u0E1B\u0E34\u0E14
RibbonCloseProject.tooltip=\u0E1B\u0E34\u0E14\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonPrint.text=\u0E1E\u0E34\u0E21\u0E1E\u0E4C
RibbonPrint.tooltip=\u0E1E\u0E34\u0E21\u0E1E\u0E4C\u0E40\u0E2D\u0E01\u0E2A\u0E32\u0E23\u0E1B\u0E31\u0E08\u0E08\u0E38\u0E1A\u0E31\u0E19
RibbonPrintPreview.text=\u0E14\u0E39\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07
RibbonPrintPreview.tooltip=\u0E15\u0E31\u0E27\u0E2D\u0E22\u0E48\u0E32\u0E07\u0E01\u0E48\u0E2D\u0E19\u0E1E\u0E34\u0E21\u0E1E\u0E4C
RibbonPDF.text=PDF
RibbonPDF.tooltip=PDF
RibbonCut.text=\u0E04\u0E31\u0E14
RibbonCut.tooltip=\u0E04\u0E31\u0E14
RibbonCopy.text=\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01
RibbonCopy.tooltip=\u0E04\u0E31\u0E14\u0E25\u0E2D\u0E01
RibbonPaste.text=\u0E27\u0E32\u0E07
RibbonPaste.tooltip=\u0E27\u0E32\u0E07
RibbonDelete.text=\u0E25\u0E1A
RibbonDelete.tooltip=\u0E25\u0E1A
RibbonZoomIn.text=\u0E0B\u0E39\u0E21\u0E40\u0E02\u0E49\u0E32
RibbonZoomIn.tooltip=\u0E0B\u0E39\u0E12\u0E40\u0E02\u0E49\u0E32
RibbonZoomOut.text=\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01
RibbonZoomOut.tooltip=\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01
RibbonFind.text=\u0E04\u0E49\u0E19\u0E2B\u0E32
RibbonFind.tooltip=\u0E04\u0E49\u0E19\u0E2B\u0E32
RibbonScrollToTask.text=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E07\u0E32\u0E19
RibbonScrollToTask.tooltip=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E44\u0E1B\u0E17\u0E35\u0E48\u0E07\u0E32\u0E19
RibbonOutdent.text=\u0E25\u0E14\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07
RibbonOutdent.tooltip=\u0E25\u0E14\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07
RibbonIndent.text=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07
RibbonIndent.tooltip=\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E01\u0E32\u0E23\u0E40\u0E22\u0E37\u0E49\u0E2D\u0E07
RibbonLink.text=\u0E25\u0E34\u0E49\u0E07\u0E04\u0E4C
RibbonLink.tooltip=\u0E40\u0E0A\u0E37\u0E48\u0E2D\u0E21\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07
RibbonUnlink.text=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E25\u0E34\u0E49\u0E07\u0E04\u0E4C
RibbonUnlink.tooltip=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E07\u0E32\u0E19\u0E17\u0E35\u0E48\u0E40\u0E01\u0E35\u0E48\u0E22\u0E27\u0E02\u0E49\u0E2D\u0E07
RibbonTaskInformation.text=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25
RibbonTaskInformation.tooltip=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19
RibbonResourceInformation.text=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
RibbonResourceInformation.tooltip=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
RibbonProjectInformation.text=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonProjectInformation.tooltip=\u0E02\u0E49\u0E2D\u0E21\u0E39\u0E25\u0E07\u0E32\u0E19\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonChangeWorkingTime.text=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19
RibbonChangeWorkingTime.tooltip=\u0E40\u0E1B\u0E25\u0E35\u0E48\u0E22\u0E19\u0E40\u0E27\u0E25\u0E32\u0E17\u0E33\u0E07\u0E32\u0E19
RibbonNotes.text=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38
RibbonNotes.tooltip=\u0E2B\u0E21\u0E32\u0E22\u0E40\u0E2B\u0E15\u0E38
RibbonInsert.text=\u0E41\u0E17\u0E23\u0E01
RibbonInsert.tooltip=\u0E41\u0E17\u0E23\u0E01
RibbonAssignResources.text=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
RibbonAssignResources.tooltip=\u0E01\u0E32\u0E23\u0E01\u0E33\u0E2B\u0E19\u0E14\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
RibbonProjectsDialog.text=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonProjectsDialog.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonUpdateTasks.text=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E07\u0E32\u0E19
RibbonUpdateTasks.tooltip=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E07\u0E32\u0E19
RibbonUpdateTasks.mnemonic=T
RibbonUpdateProject.text=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonUpdateProject.tooltip=\u0E1B\u0E23\u0E31\u0E1A\u0E1B\u0E23\u0E38\u0E07\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonUpdateProject.mnemonic=P
RibbonSaveBaseline.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19
RibbonSaveBaseline.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19
RibbonSaveBaseline.mnemonic=S
RibbonClearBaseline.text=\u0E25\u0E1A\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19
RibbonClearBaseline.tooltip=\u0E25\u0E1A\u0E40\u0E27\u0E2D\u0E23\u0E4C\u0E0A\u0E31\u0E19\u0E1E\u0E37\u0E49\u0E19\u0E10\u0E32\u0E19
RibbonClearBaseline.mnemonic=C
RibbonGantt.text=Gantt
RibbonGantt.tooltip=Gantt
RibbonTrackingGantt.text=\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 Gantt
RibbonTrackingGantt.tooltip=\u0E01\u0E32\u0E23\u0E15\u0E34\u0E14\u0E15\u0E32\u0E21 Gantt
RibbonTaskUsageDetail.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19
RibbonTaskUsageDetail.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19
RibbonResourceUsageDetail.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B
RibbonResourceUsageDetail.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B
RibbonNetwork.text=\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22
RibbonNetwork.tooltip=\u0E40\u0E04\u0E23\u0E37\u0E2D\u0E02\u0E48\u0E32\u0E22\u0E42\u0E1B\u0E23\u0E40\u0E08\u0E47\u0E01\u0E15\u0E4C
RibbonResources.text=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B
RibbonResources.tooltip=\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B
RibbonProjects.text=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonProjects.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonWBS.text=WBS
RibbonWBS.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E01\u0E32\u0E23\u0E41\u0E1A\u0E48\u0E07\u0E07\u0E32\u0E19
RibbonRBS.text=RBS
RibbonRBS.tooltip=\u0E42\u0E04\u0E23\u0E07\u0E2A\u0E23\u0E49\u0E32\u0E07\u0E01\u0E32\u0E23\u0E41\u0E1A\u0E48\u0E07\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
RibbonReport.text=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19
RibbonReport.tooltip=\u0E23\u0E32\u0E22\u0E07\u0E32\u0E19
RibbonHistogram.text=\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21
RibbonHistogram.tooltip=\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21
RibbonCharts.text=\u0E01\u0E23\u0E32\u0E1F
RibbonCharts.tooltip=\u0E01\u0E23\u0E32\u0E1F
RibbonTaskUsage.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19
RibbonTaskUsage.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19
RibbonResourceUsage.text=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B
RibbonResourceUsage.tooltip=\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23\u200B
RibbonNoSubWindow.text=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14
RibbonNoSubWindow.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E43\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E22\u0E48\u0E2D\u0E22
RibbonNoTextHistogram.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E2E\u0E34\u0E2A\u0E42\u0E15\u0E41\u0E01\u0E23\u0E21
RibbonNoTextCharts.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E23\u0E32\u0E1F
RibbonNoTextTaskUsage.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E07\u0E32\u0E19
RibbonNoTextResourceUsage.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E01\u0E32\u0E23\u0E43\u0E0A\u0E49\u0E17\u0E23\u0E31\u0E1E\u0E22\u0E32\u0E01\u0E23
RibbonNoTextNoSubWindow.tooltip=\u0E44\u0E21\u0E48\u0E21\u0E35\u0E23\u0E32\u0E22\u0E25\u0E30\u0E40\u0E2D\u0E35\u0E22\u0E14\u0E43\u0E19\u0E2A\u0E48\u0E27\u0E19\u0E22\u0E48\u0E2D\u0E22
RibbonTopBarSaveProject.text=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonTopBarSaveProject.tooltip=\u0E1A\u0E31\u0E19\u0E17\u0E36\u0E01\u0E42\u0E04\u0E23\u0E07\u0E01\u0E32\u0E23
RibbonTopBarUndo.text=\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A
RibbonTopBarUndo.tooltip=\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A
RibbonTopBarRedo.text=\u0E17\u0E33\u0E0B\u0E49\u0E33
RibbonTopBarRedo.tooltip=\u0E17\u0E33\u0E0B\u0E49\u0E33
PrintPreviewFirst.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E41\u0E23\u0E01
PrintPreviewBack.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E17\u0E35\u0E48\u0E41\u0E25\u0E49\u0E27
PrintPreviewForward.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E15\u0E48\u0E2D\u0E44\u0E1B
PrintPreviewLast.tooltip=\u0E2B\u0E19\u0E49\u0E32\u0E2A\u0E38\u0E14\u0E17\u0E49\u0E32\u0E22
PrintPreviewDown.tooltip=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E25\u0E07
PrintPreviewUp.tooltip=\u0E40\u0E25\u0E37\u0E48\u0E2D\u0E19\u0E02\u0E36\u0E49\u0E19
PrintPreviewZoomOut.tooltip=\u0E0B\u0E39\u0E21\u0E2D\u0E2D\u0E01
PrintPreviewZoomReset.tooltip=\u0E22\u0E01\u0E40\u0E25\u0E34\u0E01\u0E01\u0E32\u0E23\u0E0B\u0E39\u0E21
PrintPreviewZoomIn.tooltip=\u0E0B\u0E39\u0E21\u0E40\u0E02\u0E49\u0E32
PrintPreviewFormat.tooltip=\u0E23\u0E39\u0E1B\u0E41\u0E1A\u0E1A
PrintPreviewPrint.tooltip=\u0E1E\u0E34\u0E21\u0E1E\u0E4C
PrintPreviewPDF.tooltip=PDF
PrintPreviewLeftView.tooltip=\u0E41\u0E2A\u0E14\u0E07\u0E14\u0E49\u0E32\u0E19\u0E0B\u0E49\u0E32\u0E22
PrintPreviewRightView.tooltip=\u0E41\u0E2A\u0E14\u0E07\u0E14\u0E49\u0E32\u0E19\u0E02\u0E27\u0E32
Help.text=\u0E0A\u0E48\u0E27\u0E22\u0E40\u0E2B\u0E25\u0E37\u0E2D
ChooseFilter.tooltip=\u0E01\u0E23\u0E2D\u0E07
ChooseSort.tooltip=\u0E40\u0E23\u0E35\u0E22\u0E07\u0E25\u0E33\u0E14\u0E31\u0E1A
ChooseGroup.tooltip=\u0E01\u0E25\u0E38\u0E48\u0E21

View file

@ -0,0 +1,301 @@
# The contents of this file are subject to the Common Public Attribution License
# N\u1ED9i dung c\u1EE7a t\u1EC7p này ph\u1EA3i tuân theo Gi\u1EA5y Phép Phân B\u1ED5 Công C\u1ED9ng Chung
# Version 1.0 (the "License"); you may not use this file except in compliance with
# Phiên b\u1EA3n 1.0 ("Gi\u1EA5y phép"); b\u1EA1n không th\u1EC3 s\u1EED d\u1EE5ng t\u1EC7p này tr\u1EEB khi tuân th\u1EE7
# the License. You may obtain a copy of the License at
# gi\u1EA5y phép. B\u1EA1n có th\u1EC3 nh\u1EADn \u0111\u01B0\u1EE3c m\u1ED9t b\u1EA3n sao c\u1EE7a Gi\u1EA5y phép t\u1EA1i
# http://www.projity.com/license . The License is based on the Mozilla Public
# http://www.projity.com/license. Gi\u1EA5y phép d\u1EF1a trên Mozilla Public
# License Version 1.1 but Sections 14 and 15 have been added to cover use of
# Phiên b\u1EA3n Gi\u1EA5y phép 1.1 nh\u01B0ng Ph\u1EA7n 14 và 15 \u0111ã \u0111\u01B0\u1EE3c thêm vào \u0111\u1EC3 s\u1EED d\u1EE5ng
# software over a computer network and provide for limited attribution for the
# ph\u1EA7n m\u1EC1m qua m\u1EA1ng máy tính và cung c\u1EA5p phân b\u1ED5 gi\u1EDBi h\u1EA1n cho
# Original Developer. In addition, Exhibit A has been modified to be consistent
# Nhà phát tri\u1EC3n g\u1ED1c. Ngoài ra, Ph\u1EE5 l\u1EE5c A \u0111ã \u0111\u01B0\u1EE3c s\u1EEDa \u0111\u1ED5i \u0111\u1EC3 phù h\u1EE3p
# with Exhibit B.
# v\u1EDBi Ph\u1EE5 l\u1EE5c B.
# Software distributed under the License is distributed on an "AS IS" basis,
# Ph\u1EA7n m\u1EC1m \u0111\u01B0\u1EE3c phân ph\u1ED1i theo Gi\u1EA5y phép \u0111\u01B0\u1EE3c phân ph\u1ED1i trên c\u01A1 s\u1EDF "NGUYÊN TR\u1EA0NG",
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
# KHÔNG B\u1EA2O HÀNH B\u1EA4T K\u1EF2 HÌNH TH\u1EE8C NÀO, dù rõ ràng hay ng\u1EE5 ý. Xem Gi\u1EA5y phép cho
# specific language governing rights and limitations under the License. The
# ngôn ng\u1EEF c\u1EE5 th\u1EC3 \u0111i\u1EC1u ch\u1EC9nh các quy\u1EC1n và gi\u1EDBi h\u1EA1n theo Gi\u1EA5y phép. Các
# Original Code is OpenProj and ProjectLibre.
# Mã g\u1ED1c là OpenProj và ProjectLibre . Nhà phát tri\u1EC3n chính là Nhà phát tri\u1EC3n ban \u0111\u1EA7u và
#The Original Developer is the Initial Developer and is both Projity, Inc and
# Nhà phát tri\u1EC3n chính là Nhà phát tri\u1EC3n ban \u0111\u1EA7u và c\u1EA3 Projity, Inc l\u1EABn
#ProjectLibre Inc. All portions of the code written by Projity are Copyright (c)
#ProjectLibre Inc. T\u1EA5t c\u1EA3 các ph\u1EA7n c\u1EE7a mã do Projity vi\u1EBFt \u0111\u1EC1u là B\u1EA3n quy\u1EC1n (c)
#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre
# 2006, 2008. M\u1ECDi Quy\u1EC1n \u0111\u01B0\u1EE3c B\u1EA3o l\u01B0u. T\u1EA5t c\u1EA3 các ph\u1EA7n c\u1EE7a mã \u0111\u01B0\u1EE3c vi\u1EBFt b\u1EDFi ProjectLibre
#are Copyright (c) 2012. All Rights Reserved. Contributors Projity, Inc. and
# là b\u1EA3n quy\u1EC1n © 2012. M\u1ECDi Quy\u1EC1n \u0111\u01B0\u1EE3c B\u1EA3o l\u01B0u. Ng\u01B0\u1EDDi \u0111óng góp Projity, Inc. và
#ProjectLibre, Inc.
#ProjectLibre, Inc.
#Alternatively, the contents of this file may be used under the terms of the
# Ngoài ra, n\u1ED9i dung c\u1EE7a t\u1EC7p này có th\u1EC3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng theo các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a
#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case
# Th\u1ECFa thu\u1EADn C\u1EA5p phép Ng\u01B0\u1EDDi dùng Cu\u1ED1i c\u1EE7a ProjectLibre (Gi\u1EA5y phép ProjectLibre), trong tr\u01B0\u1EDDng h\u1EE3p \u0111ó
#the provisions of the ProjectLibre License are applicable instead of those above.
# \u0111i\u1EC1u kho\u1EA3n c\u1EE7a Gi\u1EA5y phép ProjectLibre có th\u1EC3 áp d\u1EE5ng thay cho nh\u1EEFng \u0111i\u1EC1u kho\u1EA3n \u1EDF trên.
#If you wish to allow use of your version of this file only under the terms of the
# N\u1EBFu b\u1EA1n mu\u1ED1n ch\u1EC9 cho phép s\u1EED d\u1EE5ng phiên b\u1EA3n c\u1EE7a t\u1EC7p này theo các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a
#ProjectLibre License and not to allow others to use your version of this file under
# Gi\u1EA5y phép ProjectLibre và không cho phép ng\u01B0\u1EDDi khác s\u1EED d\u1EE5ng phiên b\u1EA3n t\u1EC7p này c\u1EE7a b\u1EA1n theo
#the CPAL, indicate your decision by deleting the provisions above and replace them
# CPAL, cho bi\u1EBFt quy\u1EBFt \u0111\u1ECBnh c\u1EE7a b\u1EA1n b\u1EB1ng cách xóa các \u0111i\u1EC1u kho\u1EA3n \u1EDF trên và thay th\u1EBF chúng
#with the notice and other provisions required by the Project Libre License. If you
# v\u1EDBi thông báo và các \u0111i\u1EC1u kho\u1EA3n khác theo yêu c\u1EA7u c\u1EE7a Gi\u1EA5y phép Project Libre. N\u1EBFu b\u1EA1n
#do not delete the provisions above, a recipient may use your version of this file
# không xóa các \u0111i\u1EC1u kho\u1EA3n \u1EDF trên, ng\u01B0\u1EDDi nh\u1EADn có th\u1EC3 s\u1EED d\u1EE5ng phiên b\u1EA3n này c\u1EE7a b\u1EA1n
#under either the CPAL or the ProjectLibre Licenses.
# theo CPAL ho\u1EB7c Gi\u1EA5y phép ProjectLibre.
#
#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices
# [L\u01AFU Ý: V\u0103n b\u1EA3n c\u1EE7a Ph\u1EE5 l\u1EE5c A này có th\u1EC3 h\u01A1i khác so v\u1EDBi v\u0103n b\u1EA3n c\u1EE7a các thông báo
#in the Source Code files of the Original Code. You should use the text of this
# trong các t\u1EC7p Mã ngu\u1ED3n c\u1EE7a Mã g\u1ED1c. B\u1EA1n nên s\u1EED d\u1EE5ng v\u0103n b\u1EA3n
#Exhibit A rather than the text found in the Original Code Source Code for Your
#Ph\u1EE5 L\u1EE5c A ch\u1EE9 không ph\u1EA3i là v\u0103n b\u1EA3n \u0111\u01B0\u1EE3c tìm th\u1EA5y trong Mã ngu\u1ED3n g\u1ED1c cho
#Modifications.]
# S\u1EEDa \u0111\u1ED5i.]
#EXHIBIT B. Attribution Information both ProjectLibre and OpenProj required
#Ph\u1EE5 l\u1EE5c B. C\u1EA7n có Thông tin Thu\u1ED9c tính cho c\u1EA3 ProjectLibre và OpenProj
#
#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc.
# Thông báo v\u1EC1 B\u1EA3n quy\u1EC1n Ghi nh\u1EADn tác gi\u1EA3: B\u1EA3n quy\u1EC1n (c) 2012, ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of
# C\u1EE5m t\u1EEB Thu\u1ED9c tính (không quá 10 t\u1EEB): ProjectLibre, phiên b\u1EA3n c\u1EADp nh\u1EADt c\u1EE7a
#OpenProj
# OpenProj
#Attribution URL: http://www.projectlibre.com
# URL phân b\u1ED5: http://www.projectlibre.com
#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with
# Hình \u1EA3nh \u0110\u1ED3 h\u1ECDa nh\u01B0 \u0111\u01B0\u1EE3c cung c\u1EA5p trong Mã \u0111\u01B0\u1EE3c B\u1EA3o v\u1EC7 d\u01B0\u1EDBi d\u1EA1ng t\u1EC7p: projectlibre-logo.png v\u1EDBi
#alternatives listed on http://www.projectlibre.com/logo
# l\u1EF1a ch\u1ECDn thay th\u1EBF \u0111\u01B0\u1EE3c li\u1EC7t kê trên http://www.projectlibre.com/logo
#Display of Attribution Information is required in Larger Works which are defined in
# C\u1EA7n có Hi\u1EC3n th\u1ECB Thông tin Phân b\u1ED5 trong s\u1EA3n ph\u1EA9m l\u1EDBn h\u01A1n \u0111\u01B0\u1EE3c \u0111\u1ECBnh ngh\u0129a trong
#the CPAL as a work which combines Covered Code or portions thereof with code not
# CPAL nh\u01B0 m\u1ED9t s\u1EA3n ph\u1EA9m k\u1EBFt h\u1EE3p Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 ho\u1EB7c các ph\u1EA7n c\u1EE7a nó v\u1EDBi mã không
#governed by the terms of the CPAL. However, in addition to the other notice
# \u0111\u01B0\u1EE3c \u0111i\u1EC1u ch\u1EC9nh b\u1EDFi các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a CPAL. Tuy nhiên, ngoài các thông báo
#obligations, all copies of the Covered Code in Executable and Source Code form
# ngh\u0129a v\u1EE5 khác, t\u1EA5t c\u1EA3 các b\u1EA3n sao c\u1EE7a Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 \u1EDF d\u1EA1ng Mã ngu\u1ED3n và Có th\u1EC3 th\u1EF1c thi
#distributed must, as a form of attribution of the original author, include on each
# ph\u1EA3i \u0111\u01B0\u1EE3c phân ph\u1ED1i, nh\u01B0 m\u1ED9t hình th\u1EE9c ghi nh\u1EADn tác gi\u1EA3 g\u1ED1c, bao g\u1ED3m trên m\u1ED7i
#user interface screen the "OpenProj" and \u201CProjectLibre\u201D logos visible to all users.
# giao di\u1EC7n ng\u01B0\u1EDDi dùng hi\u1EC3n th\u1ECB logo "OpenProj" và \u201CProjectLibre \ u201D cho t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi dùng.
#The OpenProj logo should be located horizontally aligned with the menu bar and left
# Bi\u1EC3u tr\u01B0ng OpenProj ph\u1EA3i \u0111\u01B0\u1EE3c c\u0103n ch\u1EC9nh theo chi\u1EC1u ngang v\u1EDBi thanh menu và
#justified on the top left of the screen adjacent to the File menu. The logo must be
# c\u0103n trái \u1EDF trên cùng bên trái c\u1EE7a màn hình li\u1EC1n k\u1EC1 v\u1EDBi menu T\u1EC7p. Bi\u1EC3u t\u01B0\u1EE3ng ph\u1EA3i là
#at least 100 x 25 pixels. When users click on the "OpenProj" logo it must direct them
# ít nh\u1EA5t 100 x 25 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào logo "OpenProj", nó ph\u1EA3i h\u01B0\u1EDBng h\u1ECD
#back to http://www.projity.com. The ProjectLibre logo should be located horizontally
# quay l\u1EA1i http://www.projity.com. Logo ProjectLibre ph\u1EA3i \u0111\u01B0\u1EE3c \u0111\u1EB7t theo chi\u1EC1u ngang
#aligned immediately above the OpenProj logo and left justified in alignment with the
# c\u0103n ngay phía trên bi\u1EC3u tr\u01B0ng OpenProj và c\u0103n ch\u1EC9nh trái v\u1EDBi
#OpenProj logo. The logo must be at least 144 x 31 pixels. When users click on the
# Bi\u1EC3u tr\u01B0ng OpenProj. Bi\u1EC3u tr\u01B0ng ph\u1EA3i có kích th\u01B0\u1EDBc ít nh\u1EA5t là 144 x 31 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào
#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com.
# "ProjectLibre" logo nó ph\u1EA3i h\u01B0\u1EDBng h\u1ECD tr\u1EDF l\u1EA1i http://www.projectlibre.com.
#
#Attribution Copyright Notice: Copyright (c) 2006, 2008 Projity, Inc.
# Thông báo v\u1EC1 B\u1EA3n quy\u1EC1n Ghi nh\u1EADn tác gi\u1EA3: B\u1EA3n quy\u1EC1n (c) 2006, 2008 Projity, Inc.
#Attribution Phrase (not exceeding 10 words): Powered by OpenProj, an open source
# C\u1EE5m t\u1EEB thu\u1ED9c tính (không quá 10 t\u1EEB): \u0110\u01B0\u1EE3c cung c\u1EA5p b\u1EDFi OpenProj, m\u1ED9t ngu\u1ED3n m\u1EDF
#solution from Projity
# gi\u1EA3i pháp t\u1EEB Projity
#Attribution URL: http://www.projity.com
# URL phân b\u1ED5: http://www.projity.com
#Graphic Image as provided in the Covered Code as file: openproj_logo.png with
# Hình \u1EA3nh \u0110\u1ED3 h\u1ECDa nh\u01B0 \u0111\u01B0\u1EE3c cung c\u1EA5p trong Mã \u0111\u01B0\u1EE3c B\u1EA3o v\u1EC7 d\u01B0\u1EDBi d\u1EA1ng t\u1EC7p: openproj_logo.png v\u1EDBi
#alternatives listed on http://www.projity.com/logo
# l\u1EF1a ch\u1ECDn thay th\u1EBF \u0111\u01B0\u1EE3c li\u1EC7t kê trên http://www.projity.com/logo
#
#Display of Attribution Information is required in Larger Works which are defined in
# C\u1EA7n có Hi\u1EC3n th\u1ECB Thông tin Phân b\u1ED5 trong S\u1EA3n Ph\u1EA9m L\u1EDBn h\u01A1n \u0111\u01B0\u1EE3c \u0111\u1ECBnh ngh\u0129a trong
#the CPAL as a work which combines Covered Code or portions thereof with code not
# CPAL nh\u01B0 m\u1ED9t s\u1EA3n ph\u1EA9m k\u1EBFt h\u1EE3p Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 ho\u1EB7c các ph\u1EA7n c\u1EE7a nó v\u1EDBi mã không
#governed by the terms of the CPAL. However, in addition to the other notice
# \u0111\u01B0\u1EE3c \u0111i\u1EC1u ch\u1EC9nh b\u1EDFi các \u0111i\u1EC1u kho\u1EA3n c\u1EE7a CPAL. Tuy nhiên, ngoài các thông báo
#obligations, all copies of the Covered Code in Executable and Source Code form
# ngh\u0129a v\u1EE5 khác, t\u1EA5t c\u1EA3 các b\u1EA3n sao c\u1EE7a Mã \u0111\u01B0\u1EE3c b\u1EA3o v\u1EC7 \u1EDF d\u1EA1ng Mã ngu\u1ED3n và Có th\u1EC3 th\u1EF1c thi
#distributed must, as a form of attribution of the original author, include on each
# ph\u1EA3i \u0111\u01B0\u1EE3c phân ph\u1ED1i, nh\u01B0 m\u1ED9t hình th\u1EE9c ghi nh\u1EADn tác gi\u1EA3 g\u1ED1c, bao g\u1ED3m trên m\u1ED7i
#user interface screen the "OpenProj" and \u201CProjectLibre\u201D logos visible to all users.
# giao di\u1EC7n ng\u01B0\u1EDDi dùng hi\u1EC3n th\u1ECB logo "OpenProj" và \ u201CProjectLibre \ u201D cho t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi dùng.
#The OpenProj logo should be located horizontally aligned with the menu bar and left
# Bi\u1EC3u tr\u01B0ng OpenProj ph\u1EA3i \u0111\u01B0\u1EE3c c\u0103n ch\u1EC9nh theo chi\u1EC1u ngang v\u1EDBi thanh menu và
#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be
# c\u0103n trái \u1EDF trên cùng bên trái c\u1EE7a màn hình li\u1EC1n k\u1EC1 v\u1EDBi menu T\u1EC7p. \ u00A0 Logo ph\u1EA3i là
#at least 100 x 25 pixels. When users click on the "OpenProj" logo it must direct them
# ít nh\u1EA5t 100 x 25 pixel. Khi ng\u01B0\u1EDDi dùng nh\u1EA5p vào logo "OpenProj", nó ph\u1EA3i h\u01B0\u1EDBng h\u1ECD
#back to http://www.projity.com.
# quay l\u1EA1i http://www.projity.com.
#
#
# LOCALIZATION NOTES:
# L\u01AFU Ý V\u1ECA TRÍ:
#
# The only lines to localize have the following suffixes:
# Các dòng duy nh\u1EA5t \u0111\u1EC3 b\u1EA3n \u0111\u1ECBa hóa có các h\u1EADu t\u1ED1 sau:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .mnemonic (th\u01B0\u1EDDng là ch\u1EEF cái \u0111\u1EA7u tiên c\u1EE7a .text)
# .accelerator (normally CTRL+first letter of .text)
# .accelerator (th\u01B0\u1EDDng là CTRL + ch\u1EEF cái \u0111\u1EA7u tiên c\u1EE7a .text)
#
ProjectRibbonTask.title=d\u1EF1 án
TaskRibbonTask.title=công tác
ResourceRibbonTask.title=tài nguyên
ViewRibbonTask.title=xem
FileRibbonBand.title=t\u1EADp tin
PrintRibbonBand.title=in
ClipboardRibbonBand.title=b\u1EA3ng ghi t\u1EA1m
#EditingRibbonBand.title=biên so\u1EA1n
TaskRibbonBand.title=công tác
ResourceRibbonBand.title=tài nguyên
ProjectRibbonBand.title=d\u1EF1 án
TaskViewsZoomRibbonBand.title=xem công tác
TaskViewsRibbonBand.title=xem công tác
ResourceViewsZoomRibbonBand.title=xem tài nguyên
ResourceViewsRibbonBand.title=xem tài nguyên
OtherViewsRibbonBand.title=xem khác
SubViewsRibbonBand.title=xem ph\u1EE5
FiltersRibbonBand.title=l\u1ECDc
RibbonNewProject.text=m\u1EDBi
RibbonNewProject.tooltip=m\u1EDBi
RibbonOpenProject.text=m\u1EDF
RibbonOpenProject.tooltip=m\u1EDF
RibbonSaveProject.text=l\u01B0u
RibbonSaveProject.tooltip=l\u01B0u
RibbonSaveProjectAs.text=l\u01B0u l\u1EA1i
RibbonSaveProjectAs.tooltip=l\u01B0u l\u1EA1i
RibbonCloseProject.text=\u0111óng
RibbonCloseProject.tooltip=\u0111óng
RibbonPrint.text=in
RibbonPrint.tooltip=in
RibbonPrintPreview.text=xem tr\u01B0\u1EDBc in
RibbonPrintPreview.tooltip=xem tr\u01B0\u1EDBc in
RibbonPDF.text=PDF.v\u0103n b\u1EA3n
RibbonPDF.tooltip=m\u1EB9o công c\u1EE5
RibbonCut.text=c\u1EAFt
RibbonCut.tooltip=c\u1EAFt
RibbonCopy.text=sao chép
RibbonCopy.tooltip=sao chép
RibbonPaste.text=dán
RibbonPaste.tooltip=dán
RibbonDelete.text=xóa
RibbonDelete.tooltip=xóa
RibbonZoomIn.text=phóng to
RibbonZoomIn.tooltip=phóng to
RibbonZoomOut.text=thu nh\u1ECF
RibbonZoomOut.tooltip=thu nh\u1ECF
RibbonFind.text=tìm
RibbonFind.tooltip=tìm
RibbonScrollToTask.text=cu\u1ED9n t\u1EDBi công tác
RibbonScrollToTask.tooltip=cu\u1ED9n t\u1EDBi công tác
RibbonOutdent.text=nhô ra
RibbonOutdent.tooltip=nhô ra
RibbonIndent.text=th\u1EE5t vào
RibbonIndent.tooltip=th\u1EE5t vào
RibbonLink.text=k\u1EBFt n\u1ED1i
RibbonLink.tooltip=k\u1EBFt n\u1ED1i
RibbonUnlink.text=không k\u1EBFt n\u1ED1i
RibbonUnlink.tooltip=không k\u1EBFt n\u1ED1i
RibbonTaskInformation.text=thông tin công tác
RibbonTaskInformation.tooltip=thông tin công tác
RibbonResourceInformation.text=thông tin tài nguyên
RibbonResourceInformation.tooltip=thông tin tài nguyên
RibbonProjectInformation.text=thông tin d\u1EF1 án
RibbonProjectInformation.tooltip=thông tin d\u1EF1 án
RibbonChangeWorkingTime.text=thay \u0111\u1ED5i gi\u1EDD làm vi\u1EC7c
RibbonChangeWorkingTime.tooltip=thay \u0111\u1ED5i gi\u1EDD làm vi\u1EC7c
RibbonNotes.text=ghi chú
RibbonNotes.tooltip=ghi chú
RibbonInsert.text=chèn
RibbonInsert.tooltip=chèn
RibbonAssignResources.text=phân công tài nguyên
RibbonAssignResources.tooltip=phân công tài nguyên
RibbonProjectsDialog.text=h\u1ED9p tho\u1EA1i d\u1EF1 án
RibbonProjectsDialog.tooltip=h\u1ED9p tho\u1EA1i d\u1EF1 án
RibbonUpdateTasks.text=c\u1EADp nh\u1EADt công tác
RibbonUpdateTasks.tooltip=c\u1EADp nh\u1EADt công tác
RibbonUpdateTasks.mnemonic=c\u1EADp nh\u1EADt công tác
RibbonUpdateProject.text=c\u1EADp nh\u1EADt d\u1EF1 án
RibbonUpdateProject.tooltip=c\u1EADp nh\u1EADt d\u1EF1 án
RibbonUpdateProject.mnemonic=c\u1EADp nh\u1EADt d\u1EF1 án
RibbonSaveBaseline.text=l\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF
RibbonSaveBaseline.tooltip=l\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF
RibbonSaveBaseline.mnemonic=l\u01B0u \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF
RibbonClearBaseline.text=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF
RibbonClearBaseline.tooltip=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF
RibbonClearBaseline.mnemonic=xóa \u0111\u01B0\u1EDDng c\u01A1 s\u1EDF
RibbonGantt.text=Gantt
RibbonGantt.tooltip=Gantt
RibbonTrackingGantt.text=truy tìm Gantt
RibbonTrackingGantt.tooltip=truy tìm Gantt
RibbonTaskUsageDetail.text=chi ti\u1EBFt s\u1EED d\u1EE5ng công tác
RibbonTaskUsageDetail.tooltip=chi ti\u1EBFt s\u1EED d\u1EE5ng công tác
RibbonResourceUsageDetail.text=chi ti\u1EBFt s\u1EED d\u1EE5ng tài nguyên
RibbonResourceUsageDetail.tooltip=chi ti\u1EBFt s\u1EED d\u1EE5ng tài nguyên
RibbonNetwork.text=công vi\u1EC7c ròng
RibbonNetwork.tooltip=công vi\u1EC7c ròng
RibbonResources.text=tài nguyên
RibbonResources.tooltip=tài nguyên
RibbonProjects.text=d\u1EF1 án
RibbonProjects.tooltip=d\u1EF1 án
RibbonWBS.text=\u0130KY \u2026\u2026\u2026\u2026\u2026\u2026. \u0130\u015F K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131
RibbonWBS.tooltip=\u0130KY \u2026\u2026\u2026\u2026\u2026\u2026. \u0130\u015F K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131
RibbonRBS.text=KKY \u2026\u2026\u2026\u2026\u2026 Kaynak K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131
RibbonRBS.tooltip=KKY \u2026\u2026\u2026\u2026\u2026 Kaynak K\u0131r\u0131l\u0131m\u0131 Yap\u0131s\u0131
RibbonReport.text=báo cáo
RibbonReport.tooltip=báo cáo
RibbonHistogram.text=Histogram
RibbonHistogram.tooltip=Histogram
RibbonCharts.text=bi\u1EC3u \u0111\u1ED3
RibbonCharts.tooltip=bi\u1EC3u \u0111\u1ED3
RibbonTaskUsage.text=s\u1EED d\u1EE5ng công tác
RibbonTaskUsage.tooltip=s\u1EED d\u1EE5ng công tác
RibbonResourceUsage.text=s\u1EED d\u1EE5ng tài nguyên
RibbonResourceUsage.tooltip=s\u1EED d\u1EE5ng tài nguyên
RibbonNoSubWindow.text=không có c\u1EEDa s\u1ED5 ph\u1EE5
RibbonNoSubWindow.tooltip=không có c\u1EEDa s\u1ED5 ph\u1EE5
RibbonNoTextHistogram.tooltip=không có v\u0103n b\u1EA3n Histogram
RibbonNoTextCharts.tooltip=không có v\u0103n b\u1EA3n \u0111\u1ED3 th\u1ECB
RibbonNoTextTaskUsage.tooltip=không có v\u0103n b\u1EA3n s\u1EED d\u1EE5ng công tác
RibbonNoTextResourceUsage.tooltip=không có v\u0103n b\u1EA3n s\u1EED d\u1EE5ng tài nguyên
RibbonNoTextNoSubWindow.tooltip=không có v\u0103n b\u1EA3n không có c\u1EEDa s\u1ED5 ph\u1EE5
RibbonTopBarSaveProject.text=l\u01B0u d\u1EF1 án
RibbonTopBarSaveProject.tooltip=l\u01B0u d\u1EF1 án
RibbonTopBarUndo.text=h\u1EE7y
RibbonTopBarUndo.tooltip=h\u1EE7y
RibbonTopBarRedo.text=làm l\u1EA1i
RibbonTopBarRedo.tooltip=làm l\u1EA1i
PrintPreviewFirst.tooltip=\u0111\u1EA7u tiên
PrintPreviewBack.tooltip=sau
PrintPreviewForward.tooltip=tr\u01B0\u1EDBc
PrintPreviewLast.tooltip=cu\u1ED1i cùng
PrintPreviewDown.tooltip=xu\u1ED1ng
PrintPreviewUp.tooltip=lên
PrintPreviewZoomOut.tooltip=thu nh\u1ECF
PrintPreviewZoomReset.tooltip=l\u1EADp l\u1EA1i ch\u1EBF \u0111\u1ED9 thu phóng
PrintPreviewZoomIn.tooltip=phóng to
PrintPreviewFormat.tooltip=\u0111\u1ECBnh d\u1EA1ng
PrintPreviewPrint.tooltip=in
PrintPreviewPDF.tooltip=PDF
PrintPreviewLeftView.tooltip=xem trái
PrintPreviewRightView.tooltip=xem ph\u1EA3i
Help.text=h\u1ED7 tr\u1EE3
ChooseFilter.tooltip=l\u1ECDc
ChooseSort.tooltip=s\u1EAFp x\u1EBFp
ChooseGroup.tooltip=nhóm

View file

@ -0,0 +1,232 @@
#The contents of this file are subject to the Common Public Attribution License
#Version 1.0 (the "License"); you may not use this file except in compliance with
#the License. You may obtain a copy of the License at
#http://www.projectlibre.com/license . The License is based on the Mozilla Public
#License Version 1.1 but Sections 14 and 15 have been added to cover use of
#software over a computer network and provide for limited attribution for the
#Original Developer. In addition, Exhibit A has been modified to be consistent
#with Exhibit B.
#
#Software distributed under the License is distributed on an "AS IS" basis,
#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
#specific language governing rights and limitations under the License. The
#Original Code is ProjectLibre and ProjectLibre.
#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and
#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)
#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre
#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and
#ProjectLibre, Inc.
#
#Alternatively, the contents of this file may be used under the terms of the
#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case
#the provisions of the ProjectLibre License are applicable instead of those above.
#If you wish to allow use of your version of this file only under the terms of the
#ProjectLibre License and not to allow others to use your version of this file under
#the CPAL, indicate your decision by deleting the provisions above and replace them
#with the notice and other provisions required by the Project Libre License. If you
#do not delete the provisions above, a recipient may use your version of this file
#under either the CPAL or the ProjectLibre Licenses.
#
#
#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices
#in the Source Code files of the Original Code. You should use the text of this
#Exhibit A rather than the text found in the Original Code Source Code for Your
#Modifications.]
#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required
#
#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of
#ProjectLibre
#Attribution URL: http://www.projectlibre.com
#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with
#alternatives listed on http://www.projectlibre.com/logo
#
#Display of Attribution Information is required in Larger Works which are defined in
#the CPAL as a work which combines Covered Code or portions thereof with code not
#governed by the terms of the CPAL. However, in addition to the other notice
#obligations, all copies of the Covered Code in Executable and Source Code form
#distributed must, as a form of attribution of the original author, include on each
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left
#justified on the top left of the screen adjacent to the File menu. The logo must be
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them
#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally
#aligned immediately above the ProjectLibre logo and left justified in alignment with the
#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the
#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com.
#
#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source
#solution from ProjectLibre
#Attribution URL: http://www.ProjectLibre.com
#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with
#alternatives listed on http://www.ProjectLibre.com/logo
#
#Display of Attribution Information is required in Larger Works which are defined in
#the CPAL as a work which combines Covered Code or portions thereof with code not
#governed by the terms of the CPAL. However, in addition to the other notice
#obligations, all copies of the Covered Code in Executable and Source Code form
#distributed must, as a form of attribution of the original author, include on each
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left
#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them
#back to http://www.ProjectLibre.com.
#
#
# LOCALIZATION NOTES:
#
# The only lines to localize have the following suffixes:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .accelerator (normally CTRL+first letter of .text)
#
ProjectRibbonTask.title = \u6A94\u6848
TaskRibbonTask.title = \u4EFB\u52D9
ResourceRibbonTask.title = \u8CC7\u6E90
ViewRibbonTask.title = \u6AA2\u8996
FileRibbonBand.title = \u6A94\u6848
PrintRibbonBand.title = \u5217\u5370
ClipboardRibbonBand.title = \u526A\u8CBC\u7C3F
#EditingRibbonBand.title = \u7DE8\u8F2F
TaskRibbonBand.title = \u4EFB\u52D9
ResourceRibbonBand.title = \u8CC7\u6E90
ProjectRibbonBand.title = \u5C08\u6848
TaskViewsZoomRibbonBand.title = \u6AA2\u8996
TaskViewsRibbonBand.title = \u4EFB\u52D9\u6AA2\u8996
ResourceViewsZoomRibbonBand.title = \u6AA2\u8996
ResourceViewsRibbonBand.title = \u8CC7\u6E90\u6AA2\u8996
OtherViewsRibbonBand.title = \u5176\u4ED6\u6AA2\u8996
SubViewsRibbonBand.title = \u6B21\u8981\u6AA2\u8996
FiltersRibbonBand.title = \u904E\u6FFE
RibbonNewProject.text =\u65B0\u589E
RibbonNewProject.tooltip =\u65B0\u589E\u5C08\u6848
RibbonOpenProject.text =\u958B\u555F
RibbonOpenProject.tooltip =\u958B\u555F\u5C08\u6848
RibbonSaveProject.text =\u5132\u5B58
RibbonSaveProject.tooltip =\u5132\u5B58\u5C08\u6848
RibbonSaveProjectAs.text =\u53E6\u5B58
RibbonSaveProjectAs.tooltip =\u5132\u5B58\u70BA\u65B0\u5C08\u6848
RibbonCloseProject.text =\u95DC\u9589
RibbonCloseProject.tooltip =\u95DC\u9589\u5C08\u6848
RibbonPrint.text =\u5217\u5370
RibbonPrint.tooltip =\u5217\u5370\u7576\u524D\u6587\u4EF6.
RibbonPrintPreview.text =\u9810\u89BD
RibbonPrintPreview.tooltip =\u9810\u89BD\u5217\u5370
RibbonPDF.text =PDF
RibbonPDF.tooltip =PDF
RibbonCut.text =\u526A\u4E0B
RibbonCut.tooltip =\u526A\u4E0B
RibbonCopy.text =\u8907\u88FD
RibbonCopy.tooltip =\u8907\u88FD
RibbonPaste.text =Paste
RibbonPaste.tooltip =Paste
RibbonDelete.text =\u522A\u9664
RibbonDelete.tooltip =\u522A\u9664
RibbonZoomIn.text =\u62C9\u8FD1
RibbonZoomIn.tooltip =\u62C9\u8FD1
RibbonZoomOut.text =\u62C9\u9060
RibbonZoomOut.tooltip =\u62C9\u9060
RibbonFind.text =\u5C0B\u627E
RibbonFind.tooltip = \u5C0B\u627E
RibbonScrollToTask.text = \u6372\u52D5\u81F3\u4EFB\u52D9
RibbonScrollToTask.tooltip = \u6372\u52D5\u81F3\u4EFB\u52D9
RibbonOutdent.text =\u6E1B\u5C11\u7E2E\u6392
RibbonOutdent.tooltip =\u6E1B\u5C11\u7E2E\u6392
RibbonIndent.text =\u589E\u52A0\u7E2E\u6392
RibbonIndent.tooltip =\u589E\u52A0\u7E2E\u6392
RibbonLink.text=\u9023\u7D50
RibbonLink.tooltip=\u9023\u7D50
RibbonUnlink.text=\u53CD\u9023\u7D50
RibbonUnlink.tooltip=\u53CD\u9023\u7D50
RibbonTaskInformation.text =\u8CC7\u8A0A
RibbonTaskInformation.tooltip =\u4EFB\u52D9\u8CC7\u8A0A
RibbonResourceInformation.text =\u8CC7\u8A0A
RibbonResourceInformation.tooltip =\u8CC7\u6E90\u8CC7\u8A0A
RibbonProjectInformation.text =\u8CC7\u8A0A
RibbonProjectInformation.tooltip =\u5C08\u6848\u8CC7\u8A0A
RibbonChangeWorkingTime.text=\u884C\u4E8B\u66C6
RibbonChangeWorkingTime.tooltip=\u4FBF\u5DE5\u4F5C\u884C\u4E8B\u66C6
RibbonNotes.text =\u7B46\u8A18
RibbonNotes.tooltip =\u7B46\u8A18...
RibbonInsert.text =\u63D2\u5165
RibbonInsert.tooltip =\u63D2\u5165
RibbonAssignResources.text=\u5206\u914D\u8CC7\u6E90
RibbonAssignResources.tooltip=\u5206\u914D\u8CC7\u6E90
RibbonProjectsDialog.text =\u5C08\u6848\u8996\u7A97
RibbonProjectsDialog.tooltip =\u5C08\u6848
RibbonUpdateTasks.text =\u66F4\u65B0
RibbonUpdateTasks.tooltip =\u66F4\u65B0\u5C08\u6848...
RibbonUpdateTasks.mnemonic = T
RibbonUpdateProject.text =\u66F4\u65B0
RibbonUpdateProject.tooltip =\u66F4\u65B0\u5C08\u6848...
RibbonUpdateProject.mnemonic = P
RibbonSaveBaseline.text =\u5132\u5B58\u57FA\u7DDA
RibbonSaveBaseline.tooltip =\u5132\u5B58\u57FA\u7DDA...
RibbonSaveBaseline.mnemonic = S
RibbonClearBaseline.text =\u6E05\u9664\u57FA\u7DDA
RibbonClearBaseline.tooltip =\u6E05\u9664\u57FA\u7DDA...
RibbonClearBaseline.mnemonic = C
RibbonGantt.text=\u7518\u7279
RibbonGantt.tooltip=\u7518\u7279
RibbonTrackingGantt.text=\u8FFD\u8E2A\u7518\u7279
RibbonTrackingGantt.tooltip=\u8FFD\u8E2A\u7518\u7279
RibbonTaskUsageDetail.text=\u4EFB\u52D9\u4F7F\u7528
RibbonTaskUsageDetail.tooltip=\u4EFB\u52D9\u4F7F\u7528
RibbonResourceUsageDetail.text=\u8CC7\u6E90\u4F7F\u7528
RibbonResourceUsageDetail.tooltip=\u8CC7\u6E90\u4F7F\u7528
RibbonNetwork.text=\u7DB2\u8DEF
RibbonNetwork.tooltip=\u7DB2\u8DEF
RibbonResources.text=\u8CC7\u6E90
RibbonResources.tooltip=\u8CC7\u6E90
RibbonProjects.text=\u5C08\u6848
RibbonProjects.tooltip=\u5C08\u6848
RibbonWBS.text=WBS
RibbonWBS.tooltip=WBS
RibbonRBS.text=RBS
RibbonRBS.tooltip=RBS
RibbonReport.text=\u56DE\u5831
RibbonReport.tooltip=\u56DE\u5831
RibbonHistogram.text=\u7D71\u8A08
RibbonHistogram.tooltip=\u7D71\u8A08
RibbonCharts.text=\u5716\u8868
RibbonCharts.tooltip=\u5716\u8868
RibbonTaskUsage.text=\u4EFB\u52D9\u4F7F\u7528
RibbonTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528
RibbonResourceUsage.text=\u8CC7\u6E90\u4F7F\u7528
RibbonResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528
RibbonNoSubWindow.text=\u6C92\u6709\u5B50\u8996\u7A97
RibbonNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97
RibbonNoTextHistogram.tooltip=\u7D71\u8A08
RibbonNoTextCharts.tooltip=\u5716\u8868
RibbonNoTextTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528
RibbonNoTextResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528
RibbonNoTextNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97
RibbonTopBarSaveProject.text=\u5132\u5B58\u5C08\u6848
RibbonTopBarSaveProject.tooltip=\u5132\u5B58\u5C08\u6848
RibbonTopBarUndo.text=\u5FA9\u539F
RibbonTopBarUndo.tooltip=\u5FA9\u539F
RibbonTopBarRedo.text=\u91CD\u4F5C
RibbonTopBarRedo.tooltip=\u91CD\u4F5C
PrintPreviewFirst.tooltip=\u7B2C\u4E00\u9801
PrintPreviewBack.tooltip=\u4E0A\u4E00\u9801
PrintPreviewForward.tooltip = \u4E0B\u4E00\u9801
PrintPreviewLast.tooltip = \u6700\u5F8C\u4E00\u9801
PrintPreviewDown.tooltip = \u4E0A\u4E00\u9801
PrintPreviewUp.tooltip = \u4E0B\u4E00\u9801
PrintPreviewZoomOut.tooltip = \u62C9\u9060
PrintPreviewZoomReset.tooltip = \u9810\u8A2D\u5927\u5C0F
PrintPreviewZoomIn.tooltip = \u62C9\u8FD1
PrintPreviewFormat.tooltip = \u9801\u9762\u8A2D\u5B9A
PrintPreviewPrint.tooltip = \u5217\u5370
PrintPreviewPDF.tooltip = PDF
PrintPreviewLeftView.tooltip = \u986F\u793A\u5DE6\u534A\u908A
PrintPreviewRightView.tooltip = \u986F\u793A\u53F3\u534A\u908A
Help.text = \u8AAA\u660E
ChooseFilter.tooltip = \u904E\u6FFE
ChooseSort.tooltip = \u6392\u5E8F
ChooseGroup.tooltip = \u7FA4\u7D44

View file

@ -0,0 +1,232 @@
#The contents of this file are subject to the Common Public Attribution License
#Version 1.0 (the "License"); you may not use this file except in compliance with
#the License. You may obtain a copy of the License at
#http://www.projectlibre.com/license . The License is based on the Mozilla Public
#License Version 1.1 but Sections 14 and 15 have been added to cover use of
#software over a computer network and provide for limited attribution for the
#Original Developer. In addition, Exhibit A has been modified to be consistent
#with Exhibit B.
#
#Software distributed under the License is distributed on an "AS IS" basis,
#WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the
#specific language governing rights and limitations under the License. The
#Original Code is ProjectLibre and ProjectLibre.
#The Original Developer is the Initial Developer and is both ProjectLibre, Inc and
#ProjectLibre Inc. All portions of the code written by ProjectLibre are Copyright (c)
#2006, 2008. All Rights Reserved. All portions of the code written by ProjectLibre
#are Copyright (c) 2012. All Rights Reserved. Contributors ProjectLibre, Inc. and
#ProjectLibre, Inc.
#
#Alternatively, the contents of this file may be used under the terms of the
#ProjectLibre End-User License Agreement (the ProjectLibre License) in which case
#the provisions of the ProjectLibre License are applicable instead of those above.
#If you wish to allow use of your version of this file only under the terms of the
#ProjectLibre License and not to allow others to use your version of this file under
#the CPAL, indicate your decision by deleting the provisions above and replace them
#with the notice and other provisions required by the Project Libre License. If you
#do not delete the provisions above, a recipient may use your version of this file
#under either the CPAL or the ProjectLibre Licenses.
#
#
#[NOTE: The text of this Exhibit A may differ slightly from the text of the notices
#in the Source Code files of the Original Code. You should use the text of this
#Exhibit A rather than the text found in the Original Code Source Code for Your
#Modifications.]
#EXHIBIT B. Attribution Information both ProjectLibre and ProjectLibre required
#
#Attribution Copyright Notice: Copyright (c) 2012, ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): ProjectLibre, the updated version of
#ProjectLibre
#Attribution URL: http://www.projectlibre.com
#Graphic Image as provided in the Covered Code as file: projectlibre-logo.png with
#alternatives listed on http://www.projectlibre.com/logo
#
#Display of Attribution Information is required in Larger Works which are defined in
#the CPAL as a work which combines Covered Code or portions thereof with code not
#governed by the terms of the CPAL. However, in addition to the other notice
#obligations, all copies of the Covered Code in Executable and Source Code form
#distributed must, as a form of attribution of the original author, include on each
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left
#justified on the top left of the screen adjacent to the File menu. The logo must be
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them
#back to http://www.ProjectLibre.com. The ProjectLibre logo should be located horizontally
#aligned immediately above the ProjectLibre logo and left justified in alignment with the
#ProjectLibre logo. The logo must be at least 144 x 31 pixels. When users click on the
#"ProjectLibre" logo it must direct them back to http://www.projectlibre.com.
#
#Attribution Copyright Notice: Copyright (c) 2006, 2020 ProjectLibre, Inc.
#Attribution Phrase (not exceeding 10 words): Powered by ProjectLibre, an open source
#solution from ProjectLibre
#Attribution URL: http://www.ProjectLibre.com
#Graphic Image as provided in the Covered Code as file: ProjectLibre_logo.png with
#alternatives listed on http://www.ProjectLibre.com/logo
#
#Display of Attribution Information is required in Larger Works which are defined in
#the CPAL as a work which combines Covered Code or portions thereof with code not
#governed by the terms of the CPAL. However, in addition to the other notice
#obligations, all copies of the Covered Code in Executable and Source Code form
#distributed must, as a form of attribution of the original author, include on each
#user interface screen the "ProjectLibre" and \u201CProjectLibre\u201D logos visible to all users.
#The ProjectLibre logo should be located horizontally aligned with the menu bar and left
#justified on the top left of the screen adjacent to the File menu. \u00A0The logo must be
#at least 100 x 25 pixels. When users click on the "ProjectLibre" logo it must direct them
#back to http://www.ProjectLibre.com.
#
#
# LOCALIZATION NOTES:
#
# The only lines to localize have the following suffixes:
# .text
# .title
# .tooltip
# .mnemonic (normally first letter of .text)
# .accelerator (normally CTRL+first letter of .text)
#
ProjectRibbonTask.title = \u6A94\u6848
TaskRibbonTask.title = \u4EFB\u52D9
ResourceRibbonTask.title = \u8CC7\u6E90
ViewRibbonTask.title = \u6AA2\u8996
FileRibbonBand.title = \u6A94\u6848
PrintRibbonBand.title = \u5217\u5370
ClipboardRibbonBand.title = \u526A\u8CBC\u7C3F
#EditingRibbonBand.title = \u7DE8\u8F2F
TaskRibbonBand.title = \u4EFB\u52D9
ResourceRibbonBand.title = \u8CC7\u6E90
ProjectRibbonBand.title = \u5C08\u6848
TaskViewsZoomRibbonBand.title = \u6AA2\u8996
TaskViewsRibbonBand.title = \u4EFB\u52D9\u6AA2\u8996
ResourceViewsZoomRibbonBand.title = \u6AA2\u8996
ResourceViewsRibbonBand.title = \u8CC7\u6E90\u6AA2\u8996
OtherViewsRibbonBand.title = \u5176\u4ED6\u6AA2\u8996
SubViewsRibbonBand.title = \u6B21\u8981\u6AA2\u8996
FiltersRibbonBand.title = \u904E\u6FFE
RibbonNewProject.text =\u65B0\u589E
RibbonNewProject.tooltip =\u65B0\u589E\u5C08\u6848
RibbonOpenProject.text =\u958B\u555F
RibbonOpenProject.tooltip =\u958B\u555F\u5C08\u6848
RibbonSaveProject.text =\u5132\u5B58
RibbonSaveProject.tooltip =\u5132\u5B58\u5C08\u6848
RibbonSaveProjectAs.text =\u53E6\u5B58
RibbonSaveProjectAs.tooltip =\u5132\u5B58\u70BA\u65B0\u5C08\u6848
RibbonCloseProject.text =\u95DC\u9589
RibbonCloseProject.tooltip =\u95DC\u9589\u5C08\u6848
RibbonPrint.text =\u5217\u5370
RibbonPrint.tooltip =\u5217\u5370\u7576\u524D\u6587\u4EF6.
RibbonPrintPreview.text =\u9810\u89BD
RibbonPrintPreview.tooltip =\u9810\u89BD\u5217\u5370
RibbonPDF.text =PDF
RibbonPDF.tooltip =PDF
RibbonCut.text =\u526A\u4E0B
RibbonCut.tooltip =\u526A\u4E0B
RibbonCopy.text =\u8907\u88FD
RibbonCopy.tooltip =\u8907\u88FD
RibbonPaste.text =Paste
RibbonPaste.tooltip =Paste
RibbonDelete.text =\u522A\u9664
RibbonDelete.tooltip =\u522A\u9664
RibbonZoomIn.text =\u62C9\u8FD1
RibbonZoomIn.tooltip =\u62C9\u8FD1
RibbonZoomOut.text =\u62C9\u9060
RibbonZoomOut.tooltip =\u62C9\u9060
RibbonFind.text =\u5C0B\u627E
RibbonFind.tooltip = \u5C0B\u627E
RibbonScrollToTask.text = \u6372\u52D5\u81F3\u4EFB\u52D9
RibbonScrollToTask.tooltip = \u6372\u52D5\u81F3\u4EFB\u52D9
RibbonOutdent.text =\u6E1B\u5C11\u7E2E\u6392
RibbonOutdent.tooltip =\u6E1B\u5C11\u7E2E\u6392
RibbonIndent.text =\u589E\u52A0\u7E2E\u6392
RibbonIndent.tooltip =\u589E\u52A0\u7E2E\u6392
RibbonLink.text=\u9023\u7D50
RibbonLink.tooltip=\u9023\u7D50
RibbonUnlink.text=\u53CD\u9023\u7D50
RibbonUnlink.tooltip=\u53CD\u9023\u7D50
RibbonTaskInformation.text =\u8CC7\u8A0A
RibbonTaskInformation.tooltip =\u4EFB\u52D9\u8CC7\u8A0A
RibbonResourceInformation.text =\u8CC7\u8A0A
RibbonResourceInformation.tooltip =\u8CC7\u6E90\u8CC7\u8A0A
RibbonProjectInformation.text =\u8CC7\u8A0A
RibbonProjectInformation.tooltip =\u5C08\u6848\u8CC7\u8A0A
RibbonChangeWorkingTime.text=\u884C\u4E8B\u66C6
RibbonChangeWorkingTime.tooltip=\u4FBF\u5DE5\u4F5C\u884C\u4E8B\u66C6
RibbonNotes.text =\u7B46\u8A18
RibbonNotes.tooltip =\u7B46\u8A18...
RibbonInsert.text =\u63D2\u5165
RibbonInsert.tooltip =\u63D2\u5165
RibbonAssignResources.text=\u5206\u914D\u8CC7\u6E90
RibbonAssignResources.tooltip=\u5206\u914D\u8CC7\u6E90
RibbonProjectsDialog.text =\u5C08\u6848\u8996\u7A97
RibbonProjectsDialog.tooltip =\u5C08\u6848
RibbonUpdateTasks.text =\u66F4\u65B0
RibbonUpdateTasks.tooltip =\u66F4\u65B0\u5C08\u6848...
RibbonUpdateTasks.mnemonic = T
RibbonUpdateProject.text =\u66F4\u65B0
RibbonUpdateProject.tooltip =\u66F4\u65B0\u5C08\u6848...
RibbonUpdateProject.mnemonic = P
RibbonSaveBaseline.text =\u5132\u5B58\u57FA\u7DDA
RibbonSaveBaseline.tooltip =\u5132\u5B58\u57FA\u7DDA...
RibbonSaveBaseline.mnemonic = S
RibbonClearBaseline.text =\u6E05\u9664\u57FA\u7DDA
RibbonClearBaseline.tooltip =\u6E05\u9664\u57FA\u7DDA...
RibbonClearBaseline.mnemonic = C
RibbonGantt.text=\u7518\u7279
RibbonGantt.tooltip=\u7518\u7279
RibbonTrackingGantt.text=\u8FFD\u8E2A\u7518\u7279
RibbonTrackingGantt.tooltip=\u8FFD\u8E2A\u7518\u7279
RibbonTaskUsageDetail.text=\u4EFB\u52D9\u4F7F\u7528
RibbonTaskUsageDetail.tooltip=\u4EFB\u52D9\u4F7F\u7528
RibbonResourceUsageDetail.text=\u8CC7\u6E90\u4F7F\u7528
RibbonResourceUsageDetail.tooltip=\u8CC7\u6E90\u4F7F\u7528
RibbonNetwork.text=\u7DB2\u8DEF
RibbonNetwork.tooltip=\u7DB2\u8DEF
RibbonResources.text=\u8CC7\u6E90
RibbonResources.tooltip=\u8CC7\u6E90
RibbonProjects.text=\u5C08\u6848
RibbonProjects.tooltip=\u5C08\u6848
RibbonWBS.text=WBS
RibbonWBS.tooltip=WBS
RibbonRBS.text=RBS
RibbonRBS.tooltip=RBS
RibbonReport.text=\u56DE\u5831
RibbonReport.tooltip=\u56DE\u5831
RibbonHistogram.text=\u7D71\u8A08
RibbonHistogram.tooltip=\u7D71\u8A08
RibbonCharts.text=\u5716\u8868
RibbonCharts.tooltip=\u5716\u8868
RibbonTaskUsage.text=\u4EFB\u52D9\u4F7F\u7528
RibbonTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528
RibbonResourceUsage.text=\u8CC7\u6E90\u4F7F\u7528
RibbonResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528
RibbonNoSubWindow.text=\u6C92\u6709\u5B50\u8996\u7A97
RibbonNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97
RibbonNoTextHistogram.tooltip=\u7D71\u8A08
RibbonNoTextCharts.tooltip=\u5716\u8868
RibbonNoTextTaskUsage.tooltip=\u4EFB\u52D9\u4F7F\u7528
RibbonNoTextResourceUsage.tooltip=\u8CC7\u6E90\u4F7F\u7528
RibbonNoTextNoSubWindow.tooltip=\u6C92\u6709\u5B50\u8996\u7A97
RibbonTopBarSaveProject.text=\u5132\u5B58\u5C08\u6848
RibbonTopBarSaveProject.tooltip=\u5132\u5B58\u5C08\u6848
RibbonTopBarUndo.text=\u5FA9\u539F
RibbonTopBarUndo.tooltip=\u5FA9\u539F
RibbonTopBarRedo.text=\u91CD\u4F5C
RibbonTopBarRedo.tooltip=\u91CD\u4F5C
PrintPreviewFirst.tooltip=\u7B2C\u4E00\u9801
PrintPreviewBack.tooltip=\u4E0A\u4E00\u9801
PrintPreviewForward.tooltip = \u4E0B\u4E00\u9801
PrintPreviewLast.tooltip = \u6700\u5F8C\u4E00\u9801
PrintPreviewDown.tooltip = \u4E0A\u4E00\u9801
PrintPreviewUp.tooltip = \u4E0B\u4E00\u9801
PrintPreviewZoomOut.tooltip = \u62C9\u9060
PrintPreviewZoomReset.tooltip = \u9810\u8A2D\u5927\u5C0F
PrintPreviewZoomIn.tooltip = \u62C9\u8FD1
PrintPreviewFormat.tooltip = \u9801\u9762\u8A2D\u5B9A
PrintPreviewPrint.tooltip = \u5217\u5370
PrintPreviewPDF.tooltip = PDF
PrintPreviewLeftView.tooltip = \u986F\u793A\u5DE6\u534A\u908A
PrintPreviewRightView.tooltip = \u986F\u793A\u53F3\u534A\u908A
Help.text = \u8AAA\u660E
ChooseFilter.tooltip = \u904E\u6FFE
ChooseSort.tooltip = \u6392\u5E8F
ChooseGroup.tooltip = \u7FA4\u7D44

View file

@ -69,6 +69,8 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.KeyEvent;
import java.awt.event.WindowEvent;
import java.awt.event.WindowStateListener;
@ -89,15 +91,20 @@ import java.util.HashSet;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.prefs.Preferences;
import javax.swing.Action;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.ImageIcon;
import javax.swing.InputMap;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.JDialog;
import javax.swing.JFrame;
@ -123,6 +130,7 @@ import javax.swing.undo.CannotUndoException;
import org.apache.batik.util.gui.resource.ActionMap;
import org.apache.batik.util.gui.resource.MissingListenerException;
import org.apache.commons.collections.Closure;
import org.projectlibre.strings.Strings;
import org.pushingpixels.flamingo.api.common.AbstractCommandButton;
import org.pushingpixels.flamingo.api.ribbon.JRibbon;
import org.pushingpixels.flamingo.api.ribbon.JRibbonFrame;
@ -133,12 +141,14 @@ import com.projectlibre.ui.ribbon.CustomRibbonBandGenerator;
import com.projectlibre.ui.ribbon.ProjectLibreRibbonUI;
import com.projectlibre1.configuration.Configuration;
import com.projectlibre1.configuration.FieldDictionary;
import com.projectlibre1.configuration.Settings;
import com.projectlibre1.contrib.ClassLoaderUtils;
import com.projectlibre1.dialog.AboutDialog;
import com.projectlibre1.dialog.AbstractDialog;
import com.projectlibre1.dialog.BaselineDialog;
import com.projectlibre1.dialog.FindDialog;
import com.projectlibre1.dialog.HelpDialog;
import com.projectlibre1.dialog.LocaleDialog;
import com.projectlibre1.dialog.OpenProjectDialog;
import com.projectlibre1.dialog.ProjectDialog;
import com.projectlibre1.dialog.ProjectInformationDialog;
@ -1028,6 +1038,7 @@ public class GraphicManager implements FrameHolder, NamedFrameListener, WindowS
actionsMap.addHandler(ACTION_CALENDAR_OPTIONS, new CalendarOptionsAction());
actionsMap.addHandler(ACTION_SAVE_BASELINE, new SaveBaselineAction());
actionsMap.addHandler(ACTION_CLEAR_BASELINE, new ClearBaselineAction());
actionsMap.addHandler(ACTION_LOCALE, new LocaleAction());
actionsMap.addHandler(ACTION_LINK, new LinkAction());
actionsMap.addHandler(ACTION_UNLINK, new UnlinkAction());
actionsMap.addHandler(ACTION_ZOOM_IN, new ZoomInAction());
@ -1606,6 +1617,17 @@ public class GraphicManager implements FrameHolder, NamedFrameListener, WindowS
return isDocumentWritable();
}
}
public class LocaleAction extends MenuActionsMap.DocumentMenuAction {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent arg0) {
setMeAsLastGraphicManager();
LocaleDialog localeDialog = LocaleDialog.getInstance(getGraphicManager());
localeDialog.doModal();
}
}
public class LinkAction extends MenuActionsMap.DocumentMenuAction {
private static final long serialVersionUID = 1L;
public void actionPerformed(ActionEvent arg0) {
@ -2419,6 +2441,62 @@ protected boolean loadLocalDocument(String fileName,boolean merge){ //uses serve
JComponent filesComponent=((DefaultFrameManager)getFrameManager()).getProjectComboPanel();
filesComponent.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR);
fileSelector.add(filesComponent,BorderLayout.EAST);
JPanel languageSelector=ribbon.getLanguageSelector();
languageSelector.setLayout(new BorderLayout());
languageSelector.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR);
JButton localeButton=new JButton(IconManager.getIcon("menu16.locale"));
localeButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
LocaleDialog localeDialog = LocaleDialog.getInstance(getGraphicManager());
localeDialog.doModal();
}
});
localeButton.setBorderPainted(false);
localeButton.setFocusPainted(false);
localeButton.setContentAreaFilled(false);
languageSelector.add(localeButton,BorderLayout.EAST);
// String[] slocales=Settings.LANGUAGES.split(";");
// String[] translatedLocales=new String[slocales.length];
// Map<String, String> transOri=new HashMap<>();
// Map<String, String> oriTrans=new HashMap<>();
// for (int i=0; i<slocales.length;i++) {
// if ("default".equals(slocales[i]))
// translatedLocales[i]=Messages.getString("Spreadsheet.Project.default"); //re-use existing key
// else if ("custom".equals(slocales[i]))
// translatedLocales[i]=Messages.getString("PageSetupDialog.PaperFormat.Custom"); //re-use existing key
// else translatedLocales[i]=slocales[i];
// oriTrans.put(slocales[i], translatedLocales[i]);
// transOri.put(translatedLocales[i], slocales[i]);
// }
// String[] currentTranslatedLocale=new String[] {oriTrans.get(Preferences.userNodeForPackage(ConfigurationFile.class).get("locale","default"))};
// JComboBox languageCombo=new JComboBox(translatedLocales);
// languageCombo.setSelectedItem(currentTranslatedLocale[0]);
// languageCombo.addActionListener(new ActionListener() {
//
// @Override
// public void actionPerformed(ActionEvent e) {
// JComboBox cb = (JComboBox)e.getSource();
// String language = (String)cb.getSelectedItem();
// if (JOptionPane.YES_OPTION == Alert.confirmYesNo(Messages.getString("Message.languageChange"))){
// currentTranslatedLocale[0]=language;
// Preferences.userNodeForPackage(ConfigurationFile.class).put("locale",transOri.get(language));
// }else {
// languageCombo.setSelectedItem(currentTranslatedLocale[0]);
// }
//
// }
// });
//
//
// languageCombo.setBackground(ProjectLibreRibbonUI.RIBBON_MENU_COLOR);
// languageSelector.add(languageCombo,BorderLayout.EAST);
projectViews.setBorder(new EmptyBorder(0,0,0,0));

View file

@ -226,6 +226,8 @@ menu24.delegateTasks=delegatedTool.gif
menu24.scrollToTask=scrollToTask.gif
menu24.PDF=pdf.png
menu.PDF=pdf16.png
menu24.locale=globe24.png
menu16.locale=globe16.png
format.other=otherFormat.gif
@ -266,6 +268,7 @@ ribbon.hint=help-hint.png
ribbon.calendar=view-calendar.png
ribbon.information=preferences-system-4.png
ribbon.help=system-help-3.png
ribbon.locale=globe24.png
ribbon.multiproject=document-multiple.png
ribbon.notes=text-field.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View file

@ -247,6 +247,7 @@ public class JRibbon extends JComponent {
//projectlibre
protected JPanel fileSelector;
protected JPanel languageSelector;
protected JPanel projectViews;
protected JLabel projectlibreLogo;
@ -269,6 +270,7 @@ public class JRibbon extends JComponent {
//projectlibre
fileSelector=new JPanel();
languageSelector=new JPanel();
projectViews=new JPanel();
projectlibreLogo=new JLabel();
@ -865,6 +867,11 @@ public class JRibbon extends JComponent {
}
public JPanel getLanguageSelector() {
return languageSelector;
}
public JPanel getProjectViews() {
return projectViews;
}