UNPKG

id-auto-formalizer

Version:

Konversi teks Bahasa Indonesia dari kasual ke formal untuk surat, email, dan laporan resmi

279 lines (202 loc) 6.12 kB
# Contributing to Bahasa Indonesia Auto Formalizer 🤝 Terima kasih atas minat Anda untuk berkontribusi! Kami sangat menghargai semua bentuk kontribusi untuk membuat tool ini lebih baik. ## 📋 Table of Contents 1. [Code of Conduct](#code-of-conduct) 2. [Cara Berkontribusi](#cara-berkontribusi) 3. [Menambah Mapping Kata](#menambah-mapping-kata) 4. [Development Setup](#development-setup) 5. [Submission Guidelines](#submission-guidelines) 6. [Style Guide](#style-guide) 7. [Community](#community) ## Code of Conduct Proyek ini menganut prinsip inklusivitas dan saling menghormati. Kami berharap semua kontributor: - Menggunakan bahasa yang sopan dan inklusif - Menghormati sudut pandang dan pengalaman yang berbeda - Menerima kritik konstruktif dengan baik - Fokus pada apa yang terbaik untuk komunitas ## Cara Berkontribusi ### 🐛 Melaporkan Bug 1. Cek [Issues](https://github.com/codenamekii/id-auto-formalizer/issues) untuk memastikan bug belum dilaporkan 2. Buat issue baru dengan template: ``` **Deskripsi Bug:** [Jelaskan bug dengan detail] **Langkah Reproduksi:** 1. ... 2. ... **Expected Behavior:** [Apa yang seharusnya terjadi] **Actual Behavior:** [Apa yang sebenarnya terjadi] **Environment:** - Node version: - OS: - Package version: ``` ### 💡 Request Fitur 1. Cek [Issues](https://github.com/codenamekii/id-auto-formalizer/issues) untuk fitur serupa 2. Buat issue dengan label `enhancement`: ``` **Fitur yang Diusulkan:** [Deskripsi fitur] **Use Case:** [Kapan/mengapa fitur ini berguna] **Implementasi yang Disarankan:** [Opsional - ide implementasi] ``` ### 📝 Menambah Mapping Kata Ini adalah kontribusi yang paling umum dan sangat kami apresiasi! #### Guidelines untuk Mapping: 1. **Pastikan Akurat**: Mapping harus menghasilkan bahasa Indonesia formal yang benar 2. **Konteks Netral**: Pilih kata formal yang bisa digunakan di berbagai konteks 3. **Konsisten**: Ikuti pola mapping yang sudah ada 4. **Tidak Duplikat**: Cek apakah mapping sudah ada #### Cara Menambah Mapping: 1. Fork repository 2. Edit `src/formalizer.js` 3. Temukan object `this.informalToFormal` 4. Tambahkan mapping baru (alphabetical order): ```javascript this.informalToFormal = { // ...existing mappings... // Tambahkan di posisi alphabetical yang tepat 'kata_informal_anda': 'kata_formal_pengganti', // Contoh: 'ngoding': 'memprogram', 'ngeprint': 'mencetak', 'nyetir': 'mengemudi', // ...more mappings... }; ``` 5. Test mapping baru: ```bash npm test # atau test manual node -e "console.log(require('./src').formalize('test ngoding'))" ``` 6. Commit dengan message yang jelas: ```bash git commit -m "feat: add mapping for ngoding -> memprogram" ``` ### 🔧 Menambah Fitur 1. Diskusikan dulu di issue untuk fitur besar 2. Fork dan buat branch baru: ```bash git checkout -b feature/nama-fitur ``` 3. Implementasi dengan test 4. Update dokumentasi 5. Submit PR ## Development Setup ### Prerequisites - Node.js >= 14.0.0 - npm >= 6.0.0 ### Setup Steps ```bash # Clone fork Anda git clone https://github.com/codenamekii/id-auto-formalizer.git cd id-auto-formalizer # Install dependencies npm install # Run tests npm test # Run linter npm run lint # Run dalam mode development npm run dev ``` ### Testing Semua kontribusi HARUS disertai test: ```javascript // test/formalizer.test.js test('should formalize new mapping', () => { const formalizer = new IndonesianFormalizer(); expect(formalizer.formalize('ngoding')).toBe('Memprogram.'); }); ``` Run test: ```bash npm test npm test -- --watch npm test -- --coverage ``` ## Submission Guidelines ### Pull Request Process 1. Update README.md jika ada perubahan API 2. Update test untuk cover perubahan 3. Pastikan semua test pass 4. Pastikan code ter-lint dengan baik 5. PR title format: `type: description` ### PR Template ```markdown ## Deskripsi [Jelaskan perubahan yang dilakukan] ## Type of Change - [ ] Bug fix - [ ] New feature - [ ] Breaking change - [ ] Documentation update ## Testing - [ ] Test ditambahkan - [ ] Semua test pass - [ ] Coverage tidak menurun ## Checklist - [ ] Code mengikuti style guide - [ ] Self-review sudah dilakukan - [ ] Dokumentasi sudah diupdate - [ ] Tidak ada warning dari linter ``` ## Style Guide ### JavaScript Style - ES6+ features - 2 spaces indentation - Single quotes - Semicolon di akhir statement - Max line length: 100 characters ### Naming Conventions - camelCase untuk variables dan functions - PascalCase untuk classes - UPPER_SNAKE_CASE untuk constants ### Comment Style ```javascript // Single line comment /** * Multi-line comment * @param {string} text - Input text * @returns {string} Formalized text */ function formalize(text) { // Implementation } ``` ### Git Commit Messages ``` feat: add mapping for technical terms - Add ngoding -> memprogram - Add ngetest -> melakukan pengujian - Add deploy -> meluncurkan Fixes #123 ``` ## Community ### Getting Help - 💬 [GitHub Discussions](https://github.com/codenamekii/id-auto-formalizer/discussions) - 🐛 [Issue Tracker](https://github.com/codenamekii/id-auto-formalizer/issues) - 📧 Email: maintainer@example.com ### Contributors Lihat [Contributors page](https://github.com/codenamekii/id-auto-formalizer/graphs/contributors). ### Special Thanks - KBBI - Komunitas open source Indonesia - Semua kontributor & reviewer ## 🎯 Priority Areas 1. Mapping kata gaul terkini 2. Konteks bisnis & startup 3. Akronim & singkatan 4. Ragam regional 5. Istilah teknis ## 📚 Resources - [KBBI](https://kbbi.kemdikbud.go.id/) - [PUEBI](https://puebi.js.org/) - [Indonesian NLP Resources](https://github.com/louisowen6/NLP_bahasa_resources) --- Terima kasih telah berkontribusi! 🙏