Skip to content

Latest commit

 

History

History
73 lines (40 loc) · 4 KB

CONTRIBUTING.md

File metadata and controls

73 lines (40 loc) · 4 KB

Contributing

This is a tutorial for code contributions for the Pororoca project. Welcome!

Remember to fork this repo and develop your code starting from the develop branch.

Machine requirements for development

The system requirements are the same as those for .NET 8. Development can be done on Linux, Windows and MacOS.

If you want to run makereleases.ps1 or rununittests.ps1 scripts, you will need PowerShell.

To generate the Windows Installer, you will need NSIS installed and with makensis added to PATH.

I want to translate Pororoca to my language

Pororoca uses .resx files for internationalization.

ResXResourceManager is a great tool for managing translations in .resx files. In its bottom bar, tab Translate, you can automate translations by using popular APIs, like Google, Bing and MyMemory. But it is only available for Windows.

For other platforms, there are VSCode extensions that allow visualization of .resx strings as tables. You can also use a text editor for them, as they follow a XML format.

  1. In the Pororoca.Desktop.Localization.SourceGeneration project, add your language to the enum and extensions.

  2. In the Pororoca.Desktop project, create a new resx file with your language strings, inside the Localization folder, and reference in AdditionalFiles inside Pororoca.Desktop.csproj.

  3. Insert a new key in the strings.resx file, of your language name, like: "TopMenuLanguage/YourLanguage",. The other language files will need a translation for this key.

  4. Edit MainWindow.xaml and MainWindowViewModel.cs to add your language to the top menu.

  5. (OPTIONAL) Add a README for your language.

  6. (OPTIONAL) Add your language to the Windows installer: src/Pororoca.Desktop.WindowsInstaller/Installer.nsi.

  7. If you want to translate the documentation to your language, open an issue on GitHub and I will concede access to the documentation website repo.

  8. Done!

I want to make my own colour theme

  1. Create a new theme in the Styles\Accents folder. If your theme is dark-based, start your new theme copying from the AmazonianNight.xaml theme. If it is light-based, copy from the Pampa.xaml theme. Light-based themes require a few more colour definitions than dark-based themes.

  2. Add your theme in the Styles\Themes.xaml and PororocaThemeManager.cs files. The PororocaThemeManager also controls the text editor theme and Pororoca variable highlight colour for your theme.

  3. Insert a key and translations for your theme name in the Localization files. The necessary key will be: "TopMenuTheme/YourThemeName".

  4. Edit MainWindow.xaml and MainWindowViewModel.cs to add your theme to the top menu.

  5. Done!

I want a custom keyboard shortcut

  1. If the keyboard shortcut is related to the collection tree (left-side panel), then the keybinding needs to be registered in CollectionsGroupView.xaml. If it is related to the main window, then the keybinding resides in the MainWindow.xaml file.

  2. Add a ViewModel command and logic for your keyboard shortcut in the KeyboardShortcuts.cs file.

I want a predefined or random variable

Edit the PororocaPredefinedVariableEvaluator.cs file to add your variable key and logic.

Is there anything else I can contribute with?

Yes! Check the GitHub issues track.