mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-11 16:56:01 +02:00
IDE: added "Resave forms with i18n" function, which opens and resaves all project forms for which i18n was enabled in order to regenerate their translation tables
git-svn-id: trunk@52586 -
This commit is contained in:
parent
368c310784
commit
5ed0714686
@ -302,6 +302,7 @@ const
|
||||
ecViewProjectSource = ecFirstLazarus + 512;
|
||||
ecProjectOptions = ecFirstLazarus + 513;
|
||||
ecProjectChangeBuildMode = ecFirstLazarus + 514;
|
||||
ecProjectResaveFormsWithI18n = ecFirstLazarus + 515;
|
||||
|
||||
// package menu
|
||||
ecOpenPackage = ecFirstLazarus + 600;
|
||||
@ -1906,7 +1907,7 @@ begin
|
||||
end;
|
||||
|
||||
const
|
||||
IDEEditorCommandStrs: array[0..314] of TIdentMapEntry = (
|
||||
IDEEditorCommandStrs: array[0..315] of TIdentMapEntry = (
|
||||
// search
|
||||
(Value: ecFind; Name: 'ecFind'),
|
||||
(Value: ecFindAgain; Name: 'ecFindAgain'),
|
||||
@ -2155,6 +2156,7 @@ const
|
||||
(Value: ecViewProjectSource; Name: 'ecViewProjectSource'),
|
||||
(Value: ecProjectOptions; Name: 'ecProjectOptions'),
|
||||
(Value: ecProjectChangeBuildMode; Name: 'ecProjectChangeBuildMode'),
|
||||
(Value: ecProjectResaveFormsWithI18n; Name: 'ecProjectResaveFormsWithI18n'),
|
||||
|
||||
// package menu
|
||||
(Value: ecOpenPackage; Name: 'ecOpenPackage'),
|
||||
|
@ -637,6 +637,7 @@ begin
|
||||
ecCloseProject : Result:= lisMenuCloseProject;
|
||||
ecSaveProject : Result:= lisMenuSaveProject;
|
||||
ecSaveProjectAs : Result:= lisMenuSaveProjectAs;
|
||||
ecProjectResaveFormsWithI18n: Result:= lisMenuResaveFormsWithI18n;
|
||||
ecPublishProject : Result:= lisMenuPublishProject;
|
||||
ecProjectInspector : Result:= lisMenuProjectInspector;
|
||||
ecAddCurUnitToProj : Result:= lisMenuAddToProject;
|
||||
@ -1277,6 +1278,7 @@ begin
|
||||
ecCloseProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecSaveProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecSaveProjectAs: SetSingle(VK_UNKNOWN,[]);
|
||||
ecProjectResaveFormsWithI18n: SetSingle(VK_UNKNOWN,[]);
|
||||
ecPublishProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecProjectInspector: SetSingle(VK_UNKNOWN,[]);
|
||||
ecAddCurUnitToProj: SetSingle(VK_F11,[ssShift]);
|
||||
@ -1714,6 +1716,7 @@ begin
|
||||
ecCloseProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecSaveProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecSaveProjectAs: SetSingle(VK_UNKNOWN,[]);
|
||||
ecProjectResaveFormsWithI18n: SetSingle(VK_UNKNOWN,[]);
|
||||
ecPublishProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecProjectInspector: SetSingle(VK_UNKNOWN,[]);
|
||||
ecAddCurUnitToProj: SetSingle(VK_F11,[ssShift]);
|
||||
@ -2339,6 +2342,7 @@ begin
|
||||
ecCloseProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecSaveProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecSaveProjectAs: SetSingle(VK_UNKNOWN,[]);
|
||||
ecProjectResaveFormsWithI18n: SetSingle(VK_UNKNOWN,[]);
|
||||
ecPublishProject: SetSingle(VK_UNKNOWN,[]);
|
||||
ecProjectInspector: SetSingle(VK_UNKNOWN,[]);
|
||||
ecAddCurUnitToProj: SetSingle(VK_A,[ssAlt,ssMeta]);
|
||||
@ -3025,6 +3029,8 @@ begin
|
||||
AddDefault(C, 'Close project', lisKMCloseProject, ecCloseProject);
|
||||
AddDefault(C, 'Save project', lisKMSaveProject, ecSaveProject);
|
||||
AddDefault(C, 'Save project as', lisKMSaveProjectAs, ecSaveProjectAs);
|
||||
AddDefault(C, 'Resave forms with i18n', lisMenuResaveFormsWithI18n,
|
||||
ecProjectResaveFormsWithI18n);
|
||||
AddDefault(C, 'Publish project', lisKMPublishProject, ecPublishProject);
|
||||
AddDefault(C, 'Project Inspector', lisMenuProjectInspector, ecProjectInspector);
|
||||
AddDefault(C, 'Add editor file to Project', lisMenuAddToProject, ecAddCurUnitToProj);
|
||||
|
@ -479,6 +479,7 @@ resourcestring
|
||||
lisMenuOpenRecentProject = 'Open Recent Project';
|
||||
lisMenuSaveProject = 'Save Project';
|
||||
lisMenuSaveProjectAs = 'Save Project As ...';
|
||||
lisMenuResaveFormsWithI18n = 'Resave forms with i18n';
|
||||
lisMenuPublishProject = 'Publish Project ...';
|
||||
lisPublishProject = 'Publish Project';
|
||||
lisMenuProjectInspector = 'Project Inspector';
|
||||
|
28
ide/main.pp
28
ide/main.pp
@ -316,6 +316,7 @@ type
|
||||
procedure mnuCloseProjectClicked(Sender: TObject);
|
||||
procedure mnuSaveProjectClicked(Sender: TObject);
|
||||
procedure mnuSaveProjectAsClicked(Sender: TObject);
|
||||
procedure mnuProjectResaveFormsWithI18n(Sender: TObject);
|
||||
procedure mnuPublishProjectClicked(Sender: TObject);
|
||||
procedure mnuProjectInspectorClicked(Sender: TObject);
|
||||
procedure mnuAddToProjectClicked(Sender: TObject);
|
||||
@ -2719,6 +2720,7 @@ begin
|
||||
itmProjectClose.OnClick := @mnuCloseProjectClicked;
|
||||
itmProjectSave.OnClick := @mnuSaveProjectClicked;
|
||||
itmProjectSaveAs.OnClick := @mnuSaveProjectAsClicked;
|
||||
itmProjectResaveFormsWithI18n.OnClick := @mnuProjectResaveFormsWithI18n;
|
||||
itmProjectPublish.OnClick := @mnuPublishProjectClicked;
|
||||
itmProjectInspector.OnClick := @mnuProjectInspectorClicked;
|
||||
itmProjectOptions.OnClick := @mnuProjectOptionsClicked;
|
||||
@ -4021,6 +4023,29 @@ begin
|
||||
DoSaveProject([sfSaveAs]);
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuProjectResaveFormsWithI18n(Sender: TObject);
|
||||
var
|
||||
AnUnitInfo: TUnitInfo;
|
||||
LFMFileName: string;
|
||||
begin
|
||||
AnUnitInfo:=Project1.FirstPartOfProject;
|
||||
while AnUnitInfo<>nil do
|
||||
begin
|
||||
if FileNameIsPascalSource(AnUnitInfo.Filename) then
|
||||
begin
|
||||
LFMFileName:=AnUnitInfo.UnitResourceFileformat.GetUnitResourceFilename(AnUnitInfo.Filename,true);
|
||||
if FileExistsCached(LFMFileName) and (not AnUnitInfo.DisableI18NForLFM) then
|
||||
if LazarusIDE.DoOpenEditorFile(AnUnitInfo.Filename,-1,-1,[ofAddToRecent])=mrOk then
|
||||
begin
|
||||
AnUnitInfo.Modified:=true;
|
||||
LazarusIDE.DoSaveEditorFile(AnUnitInfo.Filename,[]);
|
||||
//DebugLn(['TMainIDE.mnuProjectResaveFormsWithI18n Resaving form "',AnUnitInfo.Filename,'"']);
|
||||
end;
|
||||
end;
|
||||
AnUnitInfo:=AnUnitInfo.NextPartOfProject;
|
||||
end;
|
||||
end;
|
||||
|
||||
procedure TMainIDE.mnuPublishProjectClicked(Sender: TObject);
|
||||
begin
|
||||
DoPublishProject([],true);
|
||||
@ -5416,6 +5441,9 @@ begin
|
||||
MainIDEBar.itmFileSave.Enabled := ((SrcEdit<>nil) and SrcEdit.Modified)
|
||||
or ((AnUnitInfo<>nil) and AnUnitInfo.IsVirtual);
|
||||
MainIDEBar.itmFileExportHtml.Enabled := (SrcEdit<>nil);
|
||||
MainIDEBar.itmProjectResaveFormsWithI18n.Enabled := (Project1<>nil) and (not Project1.IsVirtual)
|
||||
and (Project1.EnableI18N)
|
||||
and (Project1.EnableI18NForLFM);
|
||||
if UpdateSaveAll then
|
||||
MainIDEBar.itmFileSaveAll.Enabled := MainIDEBar.itmProjectSave.Enabled;
|
||||
end;
|
||||
|
@ -263,6 +263,7 @@ type
|
||||
//itmProjectSaveSection: TIDEMenuSection;
|
||||
itmProjectSave: TIDEMenuCommand;
|
||||
itmProjectSaveAs: TIDEMenuCommand;
|
||||
itmProjectResaveFormsWithI18n: TIDEMenuCommand;
|
||||
itmProjectPublish: TIDEMenuCommand;
|
||||
//itmProjectWindowSection: TIDEMenuSection;
|
||||
itmProjectInspector: TIDEMenuCommand;
|
||||
|
@ -1266,6 +1266,8 @@ begin
|
||||
ParentMI:=itmProjectSaveSection;
|
||||
CreateMenuItem(ParentMI,itmProjectSave,'itmProjectSave',lisMenuSaveProject, 'menu_project_save');
|
||||
CreateMenuItem(ParentMI,itmProjectSaveAs,'itmProjectSaveAs',lisMenuSaveProjectAs, 'menu_project_saveas');
|
||||
CreateMenuItem(ParentMI, itmProjectResaveFormsWithI18n, 'itmProjectResaveFo'
|
||||
+'rmsWithI18n', lisMenuResaveFormsWithI18n);
|
||||
CreateMenuItem(ParentMI,itmProjectPublish,'itmProjectPublish',lisMenuPublishProject);
|
||||
|
||||
CreateMenuSeparatorSection(mnuProject,itmProjectWindowSection,'itmProjectWindowSection');
|
||||
@ -1646,6 +1648,7 @@ begin
|
||||
itmProjectClose.Command:=GetCommand(ecCloseProject);
|
||||
itmProjectSave.Command:=GetCommand(ecSaveProject);
|
||||
itmProjectSaveAs.Command:=GetCommand(ecSaveProjectAs);
|
||||
itmProjectResaveFormsWithI18n.Command:=GetCommand(ecProjectResaveFormsWithI18n);
|
||||
itmProjectPublish.Command:=GetCommand(ecPublishProject);
|
||||
itmProjectInspector.Command:=GetCommand(ecProjectInspector);
|
||||
itmProjectOptions.Command:=GetCommand(ecProjectOptions);
|
||||
|
Loading…
Reference in New Issue
Block a user