Cơ hội tên miền miễn phí 1 năm với dịch vụ WordPress GO

Lưu trữ Danh mục: Yazılımlar

Danh mục này bao gồm các phần mềm cần thiết cho hosting web và quản lý trang web. Nó bao gồm thông tin và hướng dẫn sử dụng cho các công cụ như bảng điều khiển (cPanel, Plesk, v.v.), chương trình FTP, hệ thống quản lý nội dung (WordPress, Joomla, v.v.) và phần mềm email.

chiến lược nâng cấp và di chuyển phần mềm 10157 Bài đăng trên blog này tập trung vào các chiến lược nâng cấp và di chuyển phần mềm. Nâng cấp phần mềm là gì, tại sao nó lại quan trọng và những chiến lược cơ bản cần biết sẽ được xem xét chi tiết. Những điều cần cân nhắc khi nâng cấp phiên bản, các yêu cầu cho quy trình nâng cấp hiệu quả và hướng dẫn từng bước sẽ được trình bày. Ngoài ra, tài liệu này còn đề cập đến những lợi ích và thách thức của việc cập nhật phần mềm, tác động của chúng đến trải nghiệm của người dùng và các ví dụ về cách thực hành tốt nhất. Với danh sách kiểm tra sau khi nâng cấp phần mềm và kế hoạch hành động, bài viết cung cấp hướng dẫn toàn diện cho quá trình nâng cấp thành công.
Chiến lược nâng cấp phần mềm và di chuyển phiên bản
Bài đăng trên blog này tập trung vào các chiến lược nâng cấp phần mềm và di chuyển phiên bản. Nâng cấp phần mềm là gì, tại sao nó lại quan trọng và những chiến lược cơ bản cần biết sẽ được xem xét chi tiết. Những điều cần cân nhắc khi nâng cấp phiên bản, các yêu cầu cho quy trình nâng cấp hiệu quả và hướng dẫn từng bước sẽ được trình bày. Ngoài ra, tài liệu này còn đề cập đến những lợi ích và thách thức của việc cập nhật phần mềm, tác động của chúng đến trải nghiệm của người dùng và các ví dụ về cách thực hành tốt nhất. Với danh sách kiểm tra sau khi nâng cấp phần mềm và kế hoạch hành động, bài viết cung cấp hướng dẫn toàn diện cho quá trình nâng cấp thành công. Nâng cấp phần mềm là gì và tại sao nó lại quan trọng? Nâng cấp phần mềm là quá trình chuyển sang phiên bản mới hơn, cải tiến hơn của phần mềm hiện có...
Tiếp tục đọc
chiến lược phát triển phần mềm cho điện toán biên 10155 Bài đăng trên blog này tập trung vào các chiến lược phát triển phần mềm cho điện toán biên. Đầu tiên, bài viết giải thích Edge Computing là gì và tại sao nó lại quan trọng, sau đó xem xét các giai đoạn phát triển phần mềm cơ bản và các phương pháp khác nhau. Tài liệu này đề cập đến các yêu cầu cho một quy trình phát triển thành công, các công cụ có sẵn và những quan niệm sai lầm phổ biến. Bằng cách cung cấp các ví dụ thực hành tốt nhất và mẹo dự án, nó đưa ra các phương pháp tiếp cận chiến lược để phát triển phần mềm Edge Computing toàn diện. Tóm lại, bài viết đưa ra những gợi ý để đạt được thành công trong các dự án điện toán biên để người đọc có thể thực hiện các bước sáng suốt và hiệu quả trong lĩnh vực này.
Chiến lược phát triển phần mềm cho điện toán biên
Bài đăng trên blog này tập trung vào các chiến lược phát triển phần mềm cho Điện toán biên. Đầu tiên, bài viết giải thích Edge Computing là gì và tại sao nó lại quan trọng, sau đó xem xét các giai đoạn phát triển phần mềm cơ bản và các phương pháp khác nhau. Tài liệu này đề cập đến các yêu cầu cho một quy trình phát triển thành công, các công cụ có sẵn và những quan niệm sai lầm phổ biến. Bằng cách cung cấp các ví dụ thực hành tốt nhất và mẹo dự án, nó đưa ra các phương pháp tiếp cận chiến lược để phát triển phần mềm Edge Computing toàn diện. Tóm lại, bài viết đưa ra những gợi ý để đạt được thành công trong các dự án điện toán biên để người đọc có thể thực hiện các bước sáng suốt và hiệu quả trong lĩnh vực này. Điện toán biên là gì và tại sao nó lại quan trọng? Điện toán biên có nghĩa là xử lý dữ liệu càng gần nguồn càng tốt. Điện toán đám mây truyền thống...
Tiếp tục đọc
Sự kiện do máy chủ gửi sse và công nghệ đẩy http 2 10182 Bài đăng trên blog này sẽ xem xét chi tiết hai công nghệ quan trọng mà các nhà phát triển web có thể sử dụng để truyền phát dữ liệu thời gian thực: Sự kiện do máy chủ gửi (SSE) và Đẩy HTTP/2. Trong khi định nghĩa, tính năng và phạm vi sử dụng của Sự kiện do máy chủ gửi được giải thích bằng ví dụ, mối quan hệ và sự khác biệt của nó với công nghệ HTTP/2 Push được nhấn mạnh. Bài viết thảo luận về những ưu điểm của các công nghệ này về độ trễ thấp và tối ưu hóa hiệu suất. Tài liệu này cũng đề cập đến những lợi ích khi sử dụng SSE và HTTP/2 Push trong các ứng dụng, các bước cài đặt và chuẩn bị cũng như cách cấu hình cài đặt HTTP/2 Push. Tóm lại, đây là hướng dẫn toàn diện dành cho những ai muốn bắt đầu sử dụng Server-Sent Events và hướng dẫn các nhà phát triển sử dụng các công nghệ này một cách hiệu quả.
Sự kiện do máy chủ gửi (SSE) và công nghệ đẩy HTTP/2
Bài đăng trên blog này sẽ xem xét kỹ hơn hai công nghệ quan trọng mà các nhà phát triển web có thể sử dụng để truyền dữ liệu thời gian thực: Sự kiện do máy chủ gửi (SSE) và HTTP/2 Push. Trong khi định nghĩa, tính năng và phạm vi sử dụng của Sự kiện do máy chủ gửi được giải thích bằng ví dụ, mối quan hệ và sự khác biệt của nó với công nghệ HTTP/2 Push được nhấn mạnh. Bài viết thảo luận về những ưu điểm của các công nghệ này về độ trễ thấp và tối ưu hóa hiệu suất. Tài liệu này cũng đề cập đến những lợi ích khi sử dụng SSE và HTTP/2 Push trong các ứng dụng, các bước cài đặt và chuẩn bị cũng như cách cấu hình cài đặt HTTP/2 Push. Tóm lại, đây là hướng dẫn toàn diện dành cho những ai muốn bắt đầu sử dụng Server-Sent Events và hướng dẫn các nhà phát triển sử dụng các công nghệ này một cách hiệu quả. Sự kiện do máy chủ gửi là gì?...
Tiếp tục đọc
Kỹ thuật bản địa hóa và quốc tế hóa phần mềm i18n 10191 Bài đăng trên blog này đi sâu vào các khái niệm Bản địa hóa và Quốc tế hóa phần mềm (i18n). Giải thích Bản địa hóa phần mềm là gì, tại sao nó quan trọng và cách triển khai nó trong phần mềm từng bước. Bài viết cũng nhấn mạnh tầm quan trọng của sự phù hợp về văn hóa bằng cách đề cập đến các công cụ và kỹ thuật bản địa hóa phần mềm khác nhau. Trong khi cung cấp các ví dụ về ứng dụng bản địa hóa thành công, tài liệu cũng thảo luận về những thách thức gặp phải và đề xuất giải pháp. Các biện pháp tốt nhất để bản địa hóa, tầm quan trọng của quy trình thử nghiệm beta và những điều cần lưu ý cũng được giải thích chi tiết. Hướng dẫn toàn diện này cung cấp thông tin có giá trị cho các nhà phát triển muốn điều chỉnh phần mềm của mình cho phù hợp với các thị trường khác nhau.
Kỹ thuật nội địa hóa và quốc tế hóa phần mềm (i18n)
Bài đăng trên blog này đi sâu vào các khái niệm về Bản địa hóa và Quốc tế hóa phần mềm (i18n). Giải thích Bản địa hóa phần mềm là gì, tại sao nó quan trọng và cách triển khai nó trong phần mềm từng bước. Bài viết cũng nhấn mạnh tầm quan trọng của sự phù hợp về văn hóa bằng cách đề cập đến các công cụ và kỹ thuật bản địa hóa phần mềm khác nhau. Trong khi cung cấp các ví dụ về ứng dụng bản địa hóa thành công, tài liệu cũng thảo luận về những thách thức gặp phải và đề xuất giải pháp. Các biện pháp tốt nhất để bản địa hóa, tầm quan trọng của quy trình thử nghiệm beta và những điều cần lưu ý cũng được giải thích chi tiết. Hướng dẫn toàn diện này cung cấp thông tin có giá trị cho các nhà phát triển muốn điều chỉnh phần mềm của mình cho phù hợp với các thị trường khác nhau. Bản địa hóa phần mềm là gì? Thông tin cơ bản Bản địa hóa phần mềm là quá trình bản địa hóa một sản phẩm phần mềm hoặc ứng dụng theo ngôn ngữ, văn hóa và...
Tiếp tục đọc
Bài đăng trên blog này trình bày chi tiết về chủ đề GraphQL Fragment, chủ đề rất quan trọng để tối ưu hóa hiệu suất trong API GraphQL. Đầu tiên, bài viết giải thích GraphQL Fragment là gì và tại sao nó lại quan trọng, sau đó xem xét các trường hợp sử dụng của nó. Bài viết cung cấp các mẹo cải thiện hiệu suất API bằng cách tập trung vào các kỹ thuật tối ưu hóa truy vấn GraphQL. Lợi ích của việc sử dụng phân đoạn được hỗ trợ bởi số liệu thống kê và số liệu hiệu suất, trong khi các biện pháp tốt nhất để tối ưu hóa truy vấn được nêu bật. Tài liệu này giải quyết những lỗi thường gặp trong GraphQL bằng cách nêu rõ những điều cần cân nhắc khi truy xuất dữ liệu. Phần kết luận cung cấp hướng dẫn thực tế cho các nhà phát triển muốn phát triển API GraphQL, kèm theo các khuyến nghị hành động.
Kỹ thuật tối ưu hóa truy vấn và phân đoạn GraphQL
Bu blog yazısı, GraphQL API’lerinde performans optimizasyonu için kritik öneme sahip olan GraphQL Fragment konusunu detaylıca ele alıyor. İlk olarak GraphQL Fragment’ın ne olduğunu ve neden önemli olduğunu açıklıyor, ardından kullanım alanlarını inceliyor. GraphQL sorgu optimizasyon tekniklerine odaklanarak API performansını artırma ipuçları sunuyor. Fragment kullanmanın avantajları, performans ölçümleri ve istatistiklerle desteklenirken, sorgu iyileştirme için en iyi uygulamalar vurgulanıyor. Veri alımında dikkat edilmesi gerekenler belirtilerek, GraphQL’de sık yapılan hatalara değiniliyor. Sonuç bölümünde eyleme geçme önerileriyle, GraphQL API’lerini geliştirmek isteyen geliştiricilere pratik bir rehber sunuluyor. GraphQL Fragment Nedir ve Neden Önemlidir? GraphQL Fragment, GraphQL sorgularında tekrar eden alan kümelerini tanımlamak için kullanılan...
Tiếp tục đọc
bảo mật phần mềm devops devsecops và tự động hóa bảo mật 10165 Bài đăng trên blog này đi sâu vào bảo mật phần mềm, đóng vai trò quan trọng trong các quy trình phát triển phần mềm hiện đại. Định nghĩa, tầm quan trọng và các nguyên tắc cơ bản của DevSecOps, một phương pháp bảo mật tích hợp với các nguyên tắc DevOps, sẽ được thảo luận. Các biện pháp bảo mật phần mềm, biện pháp tốt nhất và lợi ích của thử nghiệm bảo mật tự động được giải thích chi tiết. Tài liệu này đề cập đến cách đảm bảo bảo mật trong các giai đoạn phát triển phần mềm, các công cụ tự động hóa cần sử dụng và cách quản lý bảo mật phần mềm bằng DevSecOps. Ngoài ra, các biện pháp phòng ngừa cần thực hiện để chống lại vi phạm an ninh, tầm quan trọng của giáo dục và nâng cao nhận thức, xu hướng bảo mật phần mềm và kỳ vọng trong tương lai cũng được thảo luận. Hướng dẫn toàn diện này nhằm mục đích góp phần bảo mật các quy trình phát triển phần mềm bằng cách nêu bật tầm quan trọng hiện tại và tương lai của bảo mật phần mềm.
Bảo mật phần mềm DevOps (DevSecOps) và Tự động hóa bảo mật
Bài đăng trên blog này đi sâu vào chủ đề bảo mật phần mềm, một vấn đề đóng vai trò quan trọng trong quy trình phát triển phần mềm hiện đại. Định nghĩa, tầm quan trọng và các nguyên tắc cơ bản của DevSecOps, một phương pháp bảo mật tích hợp với các nguyên tắc DevOps, sẽ được thảo luận. Các biện pháp bảo mật phần mềm, biện pháp tốt nhất và lợi ích của thử nghiệm bảo mật tự động được giải thích chi tiết. Tài liệu này đề cập đến cách đảm bảo bảo mật trong các giai đoạn phát triển phần mềm, các công cụ tự động hóa cần sử dụng và cách quản lý bảo mật phần mềm bằng DevSecOps. Ngoài ra, các biện pháp phòng ngừa cần thực hiện để chống lại vi phạm an ninh, tầm quan trọng của giáo dục và nâng cao nhận thức, xu hướng bảo mật phần mềm và kỳ vọng trong tương lai cũng được thảo luận. Hướng dẫn toàn diện này nhằm mục đích góp phần bảo mật các quy trình phát triển phần mềm bằng cách nêu bật tầm quan trọng hiện tại và tương lai của bảo mật phần mềm...
Tiếp tục đọc
kỹ thuật ước tính và lập kế hoạch dự án phần mềm 10181 Bài đăng trên blog này sẽ xem xét chi tiết các kỹ thuật ước tính và lập kế hoạch quan trọng đối với việc quản lý dự án phần mềm thành công. Ước tính dự án phần mềm là gì, những điểm quan trọng cần cân nhắc trong giai đoạn lập kế hoạch và các kỹ thuật cơ bản thường được sử dụng được trình bày trong bảng so sánh. Ưu điểm và nhược điểm của việc lập kế hoạch dự án được thảo luận bằng cách đề cập đến các chủ đề như phân tích, quản lý dự án và phối hợp nhóm, cũng như quản lý rủi ro trong các giai đoạn phát triển phần mềm. Ngoài ra còn có các mẹo thực tế để quản lý dự án thành công và xu hướng tương lai trong quản lý dự án phần mềm. Hướng dẫn toàn diện này nhằm mục đích hướng dẫn các nhà quản lý dự án và nhà phát triển lập kế hoạch và quản lý dự án hiệu quả hơn.
Kỹ thuật lập kế hoạch và ước tính dự án phần mềm
Bài đăng trên blog này sẽ đề cập chi tiết đến các kỹ thuật ước tính và lập kế hoạch quan trọng đối với việc quản lý dự án phần mềm thành công. Ước tính dự án phần mềm là gì, những điểm quan trọng cần cân nhắc trong giai đoạn lập kế hoạch và các kỹ thuật cơ bản thường được sử dụng được trình bày trong bảng so sánh. Ưu điểm và nhược điểm của việc lập kế hoạch dự án được thảo luận bằng cách đề cập đến các chủ đề như phân tích, quản lý dự án và phối hợp nhóm, cũng như quản lý rủi ro trong các giai đoạn phát triển phần mềm. Ngoài ra còn có các mẹo thực tế để quản lý dự án thành công và xu hướng tương lai trong quản lý dự án phần mềm. Hướng dẫn toàn diện này nhằm mục đích hướng dẫn các nhà quản lý dự án và nhà phát triển lập kế hoạch và quản lý dự án hiệu quả hơn. Phần mềm ##...
Tiếp tục đọc
khả năng mở rộng phần mềm chiến lược mở rộng theo chiều ngang và chiều dọc 10190 Bài đăng trên blog này đi sâu vào chủ đề khả năng mở rộng phần mềm. Giải thích khả năng mở rộng phần mềm là gì và tại sao nó lại quan trọng, đồng thời nêu bật những khác biệt chính giữa khả năng mở rộng theo chiều ngang và chiều dọc. Các yếu tố cần thiết cho khả năng mở rộng phần mềm và các chiến lược khác nhau được thảo luận chi tiết. Các ví dụ thành công về mở rộng theo chiều ngang được xem xét và ưu điểm, nhược điểm của mở rộng theo chiều dọc được so sánh. Các điểm quan trọng cần xem xét trong quy trình mở rộng khả năng mở rộng phần mềm được hỗ trợ bởi số liệu thống kê và các khuyến nghị triển khai được trình bày trong phần kết luận. Hướng dẫn này sẽ giúp bạn đưa ra quyết định sáng suốt về khả năng mở rộng để cải thiện hiệu suất hệ thống và đạt được mục tiêu tăng trưởng.
Khả năng mở rộng phần mềm: Chiến lược mở rộng quy mô theo chiều ngang và chiều dọc
Bài đăng trên blog này đi sâu vào chủ đề khả năng mở rộng phần mềm. Giải thích khả năng mở rộng phần mềm là gì và tại sao nó lại quan trọng, đồng thời nêu bật những khác biệt chính giữa khả năng mở rộng theo chiều ngang và chiều dọc. Các yếu tố cần thiết cho khả năng mở rộng phần mềm và các chiến lược khác nhau được thảo luận chi tiết. Các ví dụ thành công về mở rộng theo chiều ngang được xem xét và ưu điểm, nhược điểm của mở rộng theo chiều dọc được so sánh. Các điểm quan trọng cần xem xét trong quy trình mở rộng khả năng mở rộng phần mềm được hỗ trợ bởi số liệu thống kê và các khuyến nghị triển khai được trình bày trong phần kết luận. Hướng dẫn này sẽ giúp bạn đưa ra quyết định sáng suốt về khả năng mở rộng để cải thiện hiệu suất hệ thống và đạt được mục tiêu tăng trưởng. Khả năng mở rộng phần mềm là gì? Khả năng mở rộng phần mềm là khả năng của hệ thống phần mềm đáp ứng khối lượng công việc ngày càng tăng hoặc nhu cầu của người dùng....
Tiếp tục đọc
Tự động hóa các tác vụ lặp đi lặp lại trong phần mềm 10153 Trong các quy trình phát triển phần mềm, tự động hóa các tác vụ lặp đi lặp lại trong phần mềm là một cách quan trọng để tăng hiệu quả và giảm lỗi. Bài đăng trên blog này sẽ xem xét chi tiết các tác vụ lặp đi lặp lại là gì, tại sao chúng cần được tự động hóa và các bước cần thực hiện trong quy trình này. Ngoài ra, tài liệu này còn đề cập đến các công cụ được sử dụng để tự động hóa, những thách thức gặp phải và các chiến lược để thành công. Bằng cách đánh giá những ưu điểm và nhược điểm của quy trình, chúng tôi đưa ra dự đoán về xu hướng tự động hóa phần mềm trong tương lai. Tự động hóa được áp dụng với các chiến lược phù hợp có thể cải thiện đáng kể chất lượng phần mềm đồng thời tiết kiệm thời gian.
Tự động hóa các tác vụ lặp lại trong phần mềm
Trong quy trình phát triển phần mềm, tự động hóa các tác vụ lặp đi lặp lại trong phần mềm là một cách quan trọng để tăng hiệu quả và giảm lỗi. Bài đăng trên blog này sẽ xem xét chi tiết các tác vụ lặp đi lặp lại là gì, tại sao chúng cần được tự động hóa và các bước cần thực hiện trong quy trình này. Ngoài ra, tài liệu này còn đề cập đến các công cụ được sử dụng để tự động hóa, những thách thức gặp phải và các chiến lược để thành công. Bằng cách đánh giá những ưu điểm và nhược điểm của quy trình, chúng tôi đưa ra dự đoán về xu hướng tự động hóa phần mềm trong tương lai. Tự động hóa được áp dụng với các chiến lược phù hợp có thể cải thiện đáng kể chất lượng phần mềm đồng thời tiết kiệm thời gian. Nhiệm vụ lặp đi lặp lại trong phần mềm là gì? Trong quy trình phát triển phần mềm, các tác vụ lặp đi lặp lại trong phần mềm là các quy trình được thực hiện liên tục theo cách thủ công hoặc bán tự động, tốn thời gian và có khả năng xảy ra lỗi cao. Những nhiệm vụ này...
Tiếp tục đọc
Phân tích nhật ký bằng elk stack elasticsearch logstash kibana 10180 ELK Stack (Elasticsearch, Logstash, Kibana) là một công cụ phân tích nhật ký không thể thiếu cho các hệ thống hiện đại. Bài đăng trên blog này giải thích ELK Stack là gì và tại sao nó lại quan trọng. Trong khi tầm quan trọng và lợi ích của phân tích nhật ký được nhấn mạnh, quy trình phân tích nhật ký bằng ELK Stack được giải thích từng bước. Vai trò của các thành phần Elasticsearch, Logstash và Kibana được trình bày chi tiết, đồng thời cung cấp các mẹo để phân tích nhật ký nhanh chóng. Ngoài ra, nội dung còn đề cập đến các triển khai ELK Stack, các dự án mẫu và các biện pháp thực hành tốt nhất. Trong khi thảo luận về ưu điểm và nhược điểm, những lỗi thường gặp và giải pháp cũng được đề cập. Cuối cùng, bài đăng trên blog kết thúc bằng các khuyến nghị về việc sử dụng ELK Stack.
Phân tích nhật ký với ELK Stack (Elasticsearch, Logstash, Kibana)
ELK Stack (Elasticsearch, Logstash, Kibana) là một công cụ phân tích nhật ký không thể thiếu cho các hệ thống hiện đại. Bài đăng trên blog này giải thích ELK Stack là gì và tại sao nó lại quan trọng. Trong khi tầm quan trọng và lợi ích của phân tích nhật ký được nhấn mạnh, quy trình phân tích nhật ký bằng ELK Stack được giải thích từng bước. Vai trò của các thành phần Elasticsearch, Logstash và Kibana được trình bày chi tiết, đồng thời cung cấp các mẹo để phân tích nhật ký nhanh chóng. Ngoài ra, nội dung còn đề cập đến các triển khai ELK Stack, các dự án mẫu và các biện pháp thực hành tốt nhất. Trong khi thảo luận về ưu điểm và nhược điểm, những lỗi thường gặp và giải pháp cũng được đề cập. Cuối cùng, bài đăng trên blog kết thúc bằng các khuyến nghị về việc sử dụng ELK Stack. ELK Stack là gì và tại sao nó lại quan trọng? ELK Stack là sự kết hợp của ba công cụ nguồn mở: Elasticsearch, Logstash và Kibana.
Tiếp tục đọc

Truy cập vào bảng điều khiển khách hàng, nếu bạn chưa có tài khoản

© 2020 Hostragons® là Nhà cung cấp dịch vụ lưu trữ có trụ sở tại Vương quốc Anh với số hiệu 14320956.

We've detected you might be speaking a different language. Do you want to change to:
English English
Türkçe Türkçe
English English
简体中文 简体中文
हिन्दी हिन्दी
Español Español
Français Français
العربية العربية
বাংলা বাংলা
Русский Русский
Português Português
اردو اردو
Deutsch Deutsch
日本語 日本語
தமிழ் தமிழ்
मराठी मराठी
Tiếng Việt Tiếng Việt
Italiano Italiano
Azərbaycan dili Azərbaycan dili
Nederlands Nederlands
فارسی فارسی
Bahasa Melayu Bahasa Melayu
Basa Jawa Basa Jawa
తెలుగు తెలుగు
한국어 한국어
ไทย ไทย
ગુજરાતી ગુજરાતી
Polski Polski
Українська Українська
ಕನ್ನಡ ಕನ್ನಡ
ဗမာစာ ဗမာစာ
Română Română
മലയാളം മലയാളം
ਪੰਜਾਬੀ ਪੰਜਾਬੀ
Bahasa Indonesia Bahasa Indonesia
سنڌي سنڌي
አማርኛ አማርኛ
Tagalog Tagalog
Magyar Magyar
O‘zbekcha O‘zbekcha
Български Български
Ελληνικά Ελληνικά
Suomi Suomi
Slovenčina Slovenčina
Српски језик Српски језик
Afrikaans Afrikaans
Čeština Čeština
Беларуская мова Беларуская мова
Bosanski Bosanski
Dansk Dansk
پښتو پښتو
Close and do not switch language