def convert(self, jawi_text): """ Convert Jawi text to Rumi """ if not jawi_text: return "" result = [] i = 0 text_length = len(jawi_text) while i < text_length: # Check for special cases first (like 'لا') if i + 1 < text_length and jawi_text[i:i+2] == 'لا': result.append('la') i += 2 continue char = jawi_text[i] # Handle spaces and punctuation if char.isspace(): result.append(char) i += 1 continue # Convert character if char in self.jawi_to_rumi: converted = self.jawi_to_rumi[char] result.append(converted) else: # Keep unknown characters as-is result.append(char) i += 1 # Join and clean up rumi_text = ''.join(result) # Apply additional rules rumi_text = self._apply_rules(rumi_text) return rumi_text.strip()
if not data or 'texts' not in data: return jsonify({ 'error': 'No texts provided', 'success': False }), 400 texts = data['texts'] results = [] for text in texts: try: translation = translator.translate(text, src='ms', dest='ms') results.append({ 'original': text, 'translated': translation.text, 'success': True }) except Exception as e: results.append({ 'original': text, 'error': str(e), 'success': False }) return jsonify({ 'results': results, 'success': True }), 200 except Exception as e: logger.error(f"Batch translation error: {str(e)}") return jsonify({ 'error': str(e), 'success': False }), 500 @app.route('/health', methods=['GET']) def health_check(): """ Health check endpoint """ return jsonify({ 'status': 'healthy', 'service': 'Jawi to Rumi Translator' }), 200 google translate jawi kepada rumi
def batch_translate(self, texts): """ Batch translate multiple texts """ results = [] for text in texts: try: result = self.translate_jawi_to_rumi(text) results.append(result) except Exception as e: results.append({ 'original': text, 'error': str(e), 'success': False }) return results if name == " main ": translator = GoogleCloudTranslator('path/to/credentials.json') def convert(self, jawi_text): """ Convert Jawi text to