{"id":23736725,"url":"https://github.com/rimurudev/unity-localizedtmptextbinder","last_synced_at":"2026-03-12T04:32:38.972Z","repository":{"id":270091836,"uuid":"909314806","full_name":"RimuruDev/Unity-LocalizedTMPTextBinder","owner":"RimuruDev","description":"Компонент для автоматической привязки локализованного текста TextMeshPro (TMP_Text) с помощью LocalizeStringEvent.","archived":false,"fork":false,"pushed_at":"2025-10-15T11:58:19.000Z","size":16,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-16T05:21:58.741Z","etag":null,"topics":["editorutility","localization","localization-binder","localizestringevent","textmesh","textmeshpro","tmptext","tmptext-binder","unity-localization","unity-localize","unityeventstring","unityeventtools"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RimuruDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-12-28T10:34:19.000Z","updated_at":"2025-10-15T11:58:22.000Z","dependencies_parsed_at":"2025-04-12T03:51:03.753Z","dependency_job_id":null,"html_url":"https://github.com/RimuruDev/Unity-LocalizedTMPTextBinder","commit_stats":null,"previous_names":["rimurudev/unity-localizedtmptextbinder"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/RimuruDev/Unity-LocalizedTMPTextBinder","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-LocalizedTMPTextBinder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-LocalizedTMPTextBinder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-LocalizedTMPTextBinder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-LocalizedTMPTextBinder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RimuruDev","download_url":"https://codeload.github.com/RimuruDev/Unity-LocalizedTMPTextBinder/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RimuruDev%2FUnity-LocalizedTMPTextBinder/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30415541,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-12T04:25:42.844Z","status":"ssl_error","status_checked_at":"2026-03-12T04:25:34.624Z","response_time":114,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["editorutility","localization","localization-binder","localizestringevent","textmesh","textmeshpro","tmptext","tmptext-binder","unity-localization","unity-localize","unityeventstring","unityeventtools"],"created_at":"2024-12-31T07:36:48.329Z","updated_at":"2026-03-12T04:32:38.956Z","avatar_url":"https://github.com/RimuruDev.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# LocalizedTMPTextBinder\n\n`LocalizedTMPTextBinder` — это компонент Unity, предназначенный для автоматизации процесса связывания `LocalizeStringEvent` с текстом `TMP_Text` (TextMeshPro). Скрипт устраняет необходимость ручной настройки в инспекторе, автоматически добавляя и управляя обработчиками событий, связанными с локализацией текстовых элементов.\n\n## Основная задача\nПри использовании Unity Localization в связке с TextMeshPro часто требуется вручную привязывать событие `OnUpdateString` к `TMP_Text.text`. Это может быть трудоёмким и подверженным ошибкам процессом, особенно в крупных проектах. Этот компонент решает проблему автоматической привязки, что экономит время и предотвращает ошибки.\n\n## Особенности\n- Автоматическая привязка `LocalizeStringEvent` к `TMP_Text.text`.\n- Удаление \"висячих\" подписок при удалении компонента.\n- Работа в режиме редактора и игры.\n- Гарантированное отсутствие дублирующихся подписок.\n- Простая интеграция с существующими проектами.\n\n## Установка\n1. Скопируйте скрипт `LocalizedTMPTextBinder` в папку `Scripts` вашего Unity проекта.\n2. Убедитесь, что у вас установлены следующие зависимости:\n   - [TextMeshPro](https://docs.unity3d.com/Packages/com.unity.textmeshpro@latest).\n   - [Unity Localization](https://docs.unity3d.com/Packages/com.unity.localization@latest).\n\u003cimg width=\"779\" alt=\"image\" src=\"https://github.com/user-attachments/assets/351ed689-6feb-4295-8f4e-fe91df383abf\" /\u003e\n\u003cimg width=\"779\" alt=\"image\" src=\"https://github.com/user-attachments/assets/6822d4a7-a013-4aac-822e-1fa2338db7ba\" /\u003e\n\n\n## Использование\n1. Добавьте компонент `LocalizedTMPTextBinder` на объект, содержащий `TMP_Text`, который вы хотите локализовать.\n2. Убедитесь, что на том же объекте уже присутствует компонент `LocalizeStringEvent`. Если его нет, Unity автоматически добавит его благодаря атрибуту `[RequireComponent]`.\n3. В инспекторе задайте необходимые ссылки на таблицы и записи локализации в компоненте `LocalizeStringEvent`.\n\n## Пример :D\n### До использования\nВручную настройте `LocalizeStringEvent`:\n1. Добавьте компонент `LocalizeStringEvent`.\n2. Вручную свяжите событие `OnUpdateString` с `TMP_Text.text`.\n3. Убедитесь, что подписка корректно настроена.\n\n### После использования\nПросто добавьте компонент `LocalizedTMPTextBinder` на объект, и всё произойдёт автоматически:\n```csharp\n[AddComponentMenu(\"0x_/Localization/LocalizedTMPTextBinder\")]\n```\n\n### Результат\n- `OnUpdateString` автоматически настроено на обновление `TMP_Text.text`.\n- Подписка удаляется при удалении компонента.\n\u003cimg width=\"677\" alt=\"image\" src=\"https://github.com/user-attachments/assets/fd7c9b3d-0d59-45ef-be76-4081a0a31e21\" /\u003e\n\n## Ограничения :3\n- Работает только с `TMP_Text`. Если вы используете другой тип текста, например `UI.Text`, потребуется модификация скрипта.\n- Динамическая привязка работает только для `LocalizeStringEvent` на том же объекте.\n\n## Проблемы, которые решает :3\n- Устранение ручной настройки связей между `LocalizeStringEvent` и `TMP_Text`.\n- Предотвращение накопления ненужных подписок, которые могут вызывать утечки памяти или ошибки.\n- Повышение удобства и автоматизация локализации текстовых элементов.\n\n## Как это работает :3\n1. При добавлении компонента `LocalizedTMPTextBinder`:\n    - Проверяется наличие `LocalizeStringEvent` и `TMP_Text`.\n    - Если их нет, они добавляются автоматически.\n    - Настраивается связь между `OnUpdateString` и текстом `TMP_Text`.\n2. При удалении компонента:\n    - Все подписки очищаются, чтобы избежать утечек.\n3. В режиме редактора:\n    - Обеспечивается возможность визуального контроля через инспектор.\n\n## Атрибуты :3\n- `[SelectionBase]`: Выделяет объект с компонентом `LocalizedTMPTextBinder` при клике на дочерние объекты в сцене. Это упрощает выбор объекта в сложных иерархиях.\n- `[DisallowMultipleComponent]`: Запрещает добавлять несколько экземпляров компонента `LocalizedTMPTextBinder` на один объект, предотвращая дублирование логики и возможные ошибки.\n- `[ExecuteAlways]`: Обеспечивает выполнение компонента как в режиме игры, так и в режиме редактора. Это полезно для автоматической настройки в редакторе.\n- `[RequireComponent]`: Гарантирует наличие необходимых компонентов `TMP_Text`, `LocalizeStringEvent`, `RectTransform` и `CanvasRenderer`, предотвращая ошибки, если какой-либо из них отсутствует.\n\n## Лицензия ;3\nЭтот скрипт распространяется на условиях MIT License :3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frimurudev%2Funity-localizedtmptextbinder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frimurudev%2Funity-localizedtmptextbinder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frimurudev%2Funity-localizedtmptextbinder/lists"}